私はLaravel 5.0を使ってMac OS Yosemiteを使っています。
私の local 環境にいる間、私はphp artisan migrate
を実行し続けます:
設定
ここに私の .env があります
APP_ENV=local
APP_DEBUG=true
APP_KEY=*****
DB_Host=localhost
DB_DATABASE=Homestead
DB_USERNAME=Homestead
DB_PASSWORD=secret
app\config\database.php
'mysql' => [
'driver' => 'mysql',
'Host' => env('DB_Host', 'localhost'),
'database' => env('DB_DATABASE', 'Homestead'),
'username' => env('DB_USERNAME', 'Homestead'),
'password' => env('DB_PASSWORD', 'secret'),
'unix_socket' => '/tmp/mysql.sock',
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
'strict' => false,
]
このようなエラーを回避するにはどうすればいいですか。
私はもう試した :
app/database.php に
localhost
を127.0.0.1
に置き換えます
'Host'=> env('DB_Host', 'localhost')
- > 'Host' => env('DB_Host', '127.0.0.1')
また、 .env にあります。
DB_Host=localhost
- > DB_Host=127.0.0.1
環境を指定してみてください
php artisan migrate --env=local
MySQLがrunで実行されているかどうかを確認します
mysqladmin -u Homestead -p status Enter password: secret
私は得た
Uptime: 21281 Threads: 3 Questions: 274 Slow queries: 0 Opens: 327 Flush tables: 1 Open tables: 80 Queries per second avg: 0.012
つまり、実行中です。
MySQL UNIX Socketを確認してください( このステップは私にとってはうまくいきます )
MySQLを使用して unix_socket locationを検索します。
mysql -u Homestead -p
mysql> show variables like '%sock%';
+-----------------------------------------+-----------------------------+
| Variable_name | Value |
+-----------------------------------------+-----------------------------+
| performance_schema_max_socket_classes | 10 |
| performance_schema_max_socket_instances | 322 |
| socket | /var/run/mysqld/mysqld.sock |
+-----------------------------------------+-----------------------------+
3 rows in set (0.00 sec)
それなら私は config/database.php に行きます。
私はこの行を更新します:'unix_socket' => '/tmp/mysql.sock',
'unix_socket' => '/var/run/mysqld/mysqld.sock',
へ
それでおしまい。それは私の4回目の試みとして私のために働きます。 :D
ユーザー 'Homestead' @ 'localhost' laravel 5のエラーでアクセスが拒否された理由は、.env.phpファイルのcaching-issueです。原因Laravel 5は、あなたの.envファイル。
1。アプリケーションのルートディレクトリに移動し、.envファイルを開きます(ubuntuでは非表示になっている場合があります ctrl+h 隠しファイルを表示するには、端末にいる場合は、エディタに「ls -a
」と入力して隠しファイルを表示し、データベース構成設定を変更します。それから.envファイルを保存してください
DB_Host=localhost
DB_DATABASE=laravelu
DB_USERNAME=root
DB_PASSWORD=''
2。その後、Apacheサーバー/ Webサーバーを再起動してください。そしてあなたのページを更新すればこれで終わりです
。それでも問題が解決しない場合は、以下のコマンドを実行して古い設定キャッシュファイルを消去してください。
php artisan config:clear
これでエラーは終了です
TLDR:サーバーを停止する必要があります Ctrl + c php artisan serve
を使ってもう一度始めてください。
Laravelを使用していて、すでにphp artisan serve
によってローカル開発サーバーを起動している場合
そして、上記のサーバーが既に稼働していた後、あなたは.envファイルのデータベースサーバー関連のものを変更します。 MySQLからSQLiteか何かへの移行のように。 Ctrcl C
やプロセスを停止させるものなど、上記のプロセスを必ず停止させる必要があります。それからArtisan Serveを再起動します。つまり、y php artisan serve
とブラウザを更新すると、データベースに関する問題は解決されます。これはLaravel 5.3のために私のために働いたものです
それを解決する2つの方法
最初の方法(非推奨)
データベースの設定ファイル(laravel_root/config/database.php)を開き、以下のコードブロックを検索してください。
'Host' => env('DB_Host', 'localhost'),
'database' => env('DB_DATABASE', 'blog'),
'username' => env('DB_USERNAME', 'root'),
'password' => env('DB_PASSWORD', ''),
以下のようにコードブロックを変更してください。
'Host' => 'yourHostName',
'database' => 'YourDatabastName',
'username' => 'YoutDatabaseUsername',
'password' => 'YourDatabasePassword',
セカンドウェイ(Laravelが推奨)
Laravelルートにファイル呼び出し.envが存在しない場合はチェックし、.env.exampleを探し、それを.envとしてコピー/名前変更してください。
APP_ENV=local
APP_DEBUG=true
APP_KEY=someRandomNumber
DB_Host=localhost
DB_DATABASE=Homestead
DB_USERNAME=Homestead
DB_PASSWORD=secret
CACHE_DRIVER=file
SESSION_DRIVER=file
QUEUE_DRIVER=sync
MAIL_DRIVER=smtp
MAIL_Host=mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=null
MAIL_PASSWORD=null
以下のブロックを以下のように修正します。
DB_Host=yourHostName
DB_DATABASE=yourDatabaseName
DB_USERNAME=yourDatabaseUsername
DB_PASSWORD=youPassword
今ではうまくいきます。
PHPのデフォルトWebサーバー(例:php artisan serve
)を使用している場合は、.envファイルの値を変更した後にサーバーを再起動する必要があります。
あなたがvagrant boxではなくHost machineからphp artisan migrate
を使っているならば、あなたは.env
の中にボックスのIPを定義しなければなりません192.168.10.10
そして明らかにあなたのIPアドレスからホームステッドユーザーに許可を設定します
grant all privileges on *.* to 'Homestead'@% identified by 'secret';
.env
ファイル内
DB_Host=192.168.10.10
DB_DATABASE=Homestead
DB_USERNAME=Homestead
私は同じ問題を抱えていたし、結局それは私がただサーバーを再起動してそして再び始めなければならなかったことがわかった
Ctrl + c それから
php artisan serve
Homesteadをインストールすると、VMにデフォルトの「Homestead」データベースが作成されます。 VM
Homestead ssh
にSSHでアクセスし、そこから移行を実行してください。 VMなしでローカルに作業している場合は、データベースを手動で作成する必要があります。デフォルトでは、データベースはHomesteadと呼ばれ、ユーザー名はHomestead、パスワードはsecretです。
this laracastsのスレッドをチェックしてください またはthis ブログ投稿 詳細については
あなたがなっている場合
[PDOException] SQLSTATE[HY000] [2002] No such file or directory
/app/config/database.phpファイルの "Host"を "localhost"から "127.0.0.1"に変更してみてください。この thread に、あなたはより多くの詳細と他の修正をここで見つけることができます。
また、正しいunix_socket
を指定したかどうかも確認してください。これをチェックしてください thread 。
将来的には。最初に設定をクリアしてみてください
php artisan config:clear.
すべてのterminal/cmdウィンドウを閉じてからterminal/CMDを再起動するとエラーメッセージが消えます。それが機能するかどうかを確認してください。
私の場合、 再起動後に myサーバーに問題がなくなりました。
"php artisan serve"コマンドを終了/閉じる および
コマンド "php artisan serve"を再実行してください 。
新しい設定で.envを変更したら、サーバーを停止して再度実行する必要があります(php artisan serve)。原因laravelはサーバーの初期化時に環境を取得します。再起動しないと、.envを変更して、変更が行われていない理由を確認します。
laravel 5を使用しています。*プロジェクトのルートに.env
というファイル呼び出しがあります。
APP_ENV=local
APP_DEBUG=true
APP_KEY=SomeRandomString
DB_Host=localhost
DB_DATABASE=Homestead
DB_USERNAME=Homestead
DB_PASSWORD=secret
CACHE_DRIVER=file
SESSION_DRIVER=file
QUEUE_DRIVER=sync
MAIL_DRIVER=smtp
MAIL_Host=mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null
そしてそれはbd設定を上書きしていたので、あなたはそれらの設定変数を削除して/ configの下の設定を取るか、ここで設定をセットアップすることができます。
私は2番目にしました、そして、それは私のために働きます:)
とった! rootとしてログインし、Homestead @ localhostにすべての権利を付与します。
あなたの端末から:
$ Homestead ssh
$ mysql -u root -p
Enter password: secret
mysql> grant all privileges on *.* to 'Homestead'@'localhost' identified by 'secret';
Query OK, 0 rows affected (0.00 sec)
exit
今すぐhomeesteadsの通常のユーザーはあなたのすべてのテーブルにアクセスすることができます、そしてそのように、移行のようなことを実行することができるはずです。
.env ファイルを変更するだけです。
DB_Host=localhost
DB_DATABASE=Homestead
DB_USERNAME=Homestead
DB_PASSWORD=secret
DB_DATABASEの前にデータベースの名前を書き、DB_USERNAMEの前に root を使用します。
設定データベースが再起動した後:
php artisan serve
サーブがアクティブになっている場合は、db configを設定してください。
解決策が見つかりました
アプリケーションのルートディレクトリに移動し、エディタで.envファイル(ubuntuでは非表示になっている可能性があるので、ctrl + hを押して非表示のファイルを表示)を開き、データベース設定を変更します。それから.envファイルを保存してください
その後、Apacheサーバー/ Webサーバーを再起動してください。そしてあなたのページを更新すればこれで終わりです
これは私のために働いたgl ...
ルートフォルダの " .env "ファイルを確認してください。それが正しいか?
DB_CONNECTION=mysql
DB_Host=127.0.0.1
DB_PORT=3306
DB_DATABASE=Homestead
DB_USERNAME=Homestead
DB_PASSWORD=secret
この問題が今日の約3時間の間私をいらいらさせたので、私はちょうどこれを投稿したいと思いました。私は他の答えに記載されている方法のどれも試していません、それらはすべて合理的に思えますが。実際、私はちょうど上で提案された解決策のそれぞれを通過しようとしていましたが、どういうわけか私はこのインスピレーションのストロークを得ました。ここに私が仕事に取り戻すために私のために働いたものがあります - YMMV:
1)あなたの.envファイルを見つけてください。 2).envファイルの名前を他の名前に変更します。 Laravel 5は、このファイルをフレームワーク内の他の場所の設定のオーバーライドとして使用している必要があります。私の名前を.env.oldに変更しました。3)Webサーバーを再起動する必要があるかもしれませんが、する必要はありませんでした。
がんばろう!
あなたのMacではなく、Homestead内から$ php artisan migrate
コマンドを実行しなければなりません。
MYSQLにログインします - mysqlデータベースを使用します。
ユーザーから*を選択します。
[ホスト]列が正しいことを確認してください。 IPアドレスまたはDNS名であれば、接続元のホスト(アプリケーションサーバー)である必要があります。また、 '%'は機能しますが(ワイルドカードを意味します)、安全ではありません。
.envファイルを確認し、変数を編集したら、laravelサーバーを再起動してください。問題が解決します。
ルートフォルダーの.envファイルでこれらを変更するだけです。
DB_DATABASE=your_db_name
DB_USERNAME=your_db_user_name
DB_PASSWORD='your_db_password'
それは私のために働いた。
A.データベース設定で.envファイルを更新した後、「running php artisan config:clear」で幼虫の設定を消去します。
B.設定を有効にするために、必ずApacheサーバーを再起動するか、 "php artisan serve"コマンドを再実行してください。
私はSQLiteを使用して同じ問題を抱えていた。私の問題は、DB_DATABASEが間違ったファイルの場所を指していたことです。
Touchコマンドでsqliteファイルを作成し、php artisan tinkerを使ってファイルパスを出力します。
$ touch database/database.sqlite
$ php artisan tinker
Psy Shell v0.8.0 (PHP 5.6.27 — cli) by Justin Hileman
>>> database_path(‘database.sqlite’)
=> "/Users/connorleech/Projects/laravel-5-rest-api/database/database.sqlite"
その正確なパスをDB_DATABASE変数に出力します。
DB_CONNECTION=sqlite
DB_Host=127.0.0.1
DB_PORT=3306
DB_DATABASE=/Users/connorleech/Projects/laravel-5-rest-api/database/database.sqlite
DB_USERNAME=Homestead
DB_PASSWORD=secret
正しいパスがないと、アクセス拒否エラーが発生します。
PDOException in Connector.php line 55: SQLSTATE[HY000] [1049] Unknown database 'laravelu'
のようなものを返すエラーがある場合は、ベース構成をDB_DATABASE=laravelu
に変更していることが原因です。だから今のところあなたはどちらか:
DB_DATABASE=
[yourdatabase]
または を変更します。laravelu
というデータベースを作成します。これで解決できるはずです
私の場合、エラーはコマンドラインから移行を実行しようとしていたホームステッド/ヴァグラントの構成が原因でした。
Homestead Vagrant Box環境を使用する場合は、ssh:[email protected]:22
を使用して接続した後、Homesteadマシン内から移行を実行する必要があります。アクセス権はOKで、移行を実行できます。