php-laravelはVMLAMP上のmysqlデータベースに接続できません
やあみんな、laravelを学ぼうとしていますが、tutorailをフォローしていますが、LAMPを実行しているVMを介してデータベースに接続できないようです。私はすべての投稿を調べましたが、まだ何も機能していません
コマンドphp artisan migrate
を実行すると、次のエラーが発生します
[PDOException]
SQLSTATE[HY000] [2003] Can't connect to MySQL server on '10.0.1.22' (111)
この投稿をフォローしても、次のエラーが発生しました
[PDOException]
SQLSTATE[HY000] [2002] Can't connect to local MySQL server through socket '/opt/lampp/var/mysql/mysql.sock' (2)
私のlaravelアプリはポート8000
で実行されていますが、私のphpmyadminは 10.0.1.22/phpmyadmin
にあります。 、私はまだ初心者なので、私のデバッグソリューションは限られています。
これが私のdatabase.php
ファイルと私の.envi
ファイルです
database.php
'mysql' => [
'driver' => 'mysql',
'host' => env('DB_HOST', '10.0.1.22'),
'database' => env('DB_DATABASE', 'task'),
'username' => env('DB_USERNAME', 'root'),
'password' => env('DB_PASSWORD', 'test'),
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
'strict' => false,
],
と私の.enviファイル
APP_ENV=local
APP_DEBUG=true
APP_KEY=HBzhX830sIrNbZ2hdB23DGAuGa4mj4IL
DB_HOST=10.0.1.22
DB_DATABASE=task
DB_USERNAME=root
DB_PASSWORD=test
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
すべての助けに感謝します
答え :
解決策:
DB_HOSTを127.0.0.1に変更します
10.0.1.22は、コンピューターからVMマシンへの外部アドレスです。 Apache / PHPとMySQLは同じマシンで実行されているため、外部アドレスではなく内部(127.0.0.1)に接続する理由はありません。
MySQLでユーザーを作成する場合、接続を受け入れるIPアドレスを設定できます。デフォルトでは、ほとんどの場合、rootユーザーは内部呼び出し(127.0.0.1)のみをリッスンするように設定されています。
答え :
解決策:
変更する
DB_HOST=10.0.1.22
から
DB_HOST = 127.0.0.1
Loaclhostがこのポートで定義しているため。単に
を意味します127.0.0.1 == localhost
同様の質問
私たちのウェブサイトで同様の質問で答えを見つけてください。