【Laravel】PDOエラー. PDOException SQLSTATE No such file or directory

laravel .envファイルの設定

Laravelで php artisan migratephp artisan db:seed などDBまわりのartisanコマンドを実行するとエラーメッセージが表示されます。

【Laravel】PDOException SQLSTATE[HY000] [2002] No such file or directory

Laravelのアプリケーションが、mysqlやpostgresqlなどのDBにうまく接続できていないときに出るエラーです。

アプリルートのディレクトリにある.envファイルの内容を確認しましょう。

ここにDBへの接続情報が記載されているはずです。

このDBへの接続情報に間違いがあってつなげてない可能性が高いです。

DB_CONNECTION=mysql
DB_HOST=mysql
DB_PORT=3306
DB_DATABASE=db_name
DB_USERNAME=db_user
DB_USERNAME=root
DB_PASSWORD=db_password

DB_HOSTをlocalhost から127.0.0.1 にするとつながったりすることがあるようです。

もちろんユーザ名やパスワードが間違っている場合も繋がりませんよ!

ターミナルから直接、mysqlコマンドで繋いでみてつながることも確認しておきましょうね

mysql -u user_name -pみたいな。

ここを直してもダメなら config/database.php を確認してください。

ここで.envを参照しているはず。

'default' => env('DB_CONNECTION', 'mysql'),

これは.envファイルのDB_CONNECTIONを参照する、という意味。

env()でちゃんと.envファイルの値を参照しているか確認してできていなければ参照するようにしましょう。

それでもダメならキャッシュかも。

一回、configのキャッシュを消しましょう。

php artisan config:clear

これで解決するはず。

公式リファレンスはこちら。

https://laravel.com/docs/9.x/configuration#environment-file-security

https://laravel.com/docs/9.x/database#read-and-write-connections