PDOException SQLSTATE[HY000] [2002] そのようなファイルまたはディレクトリはありません 質問する

PDOException SQLSTATE[HY000] [2002] そのようなファイルまたはディレクトリはありません 質問する

php artisan migrate私は自分の (非常に基本的な) サイトを fortrabbit に正常にデプロイできたと考えていますが、SSH に接続していくつかのコマンド (またはなど)を実行するとすぐに、次のphp artisan db:seedエラー メッセージが表示されます。

[PDOException]
SQLSTATE[HY000] [2002] No such file or directory

テーブルがそこに存在するため、ある時点で移行は成功したはずですが、これではなぜ現在移行が機能しないのかは説明できません。

ベストアンサー1

このエラーの最も単純な原因の 1 つは、MySQL サーバーが稼働していないことです。まずそれを確認してください。稼働している場合は、他の推奨事項に進みます。

Laravel 4:ファイル内の「host」をapp/config/database.php「localhost」から「127.0.0.1」に変更します

Laravel 5+:ファイル内の「DB_HOST」を.env「localhost」から「127.0.0.1」に変更します

私もまったく同じ問題を抱えていました。上記の解決策はどれもうまくいきませんでした。/app/config/database.php ファイルの「host」を「localhost」から「127.0.0.1」に変更することで、この問題を解決しました。

「localhost」がデフォルトで機能しない理由はわかりませんが、symfony2 の投稿で解決された同様の質問でこの回答を見つけました。https://stackoverflow.com/a/9251924

更新:この修正がなぜ機能するのかと尋ねられたので、このトピックについて少し調べてみました。この投稿で説明されているように、異なる接続タイプを使用しているようです。https://stackoverflow.com/a/9715164

ここで発生した問題は、「localhost」が UNIX ソケットを使用しており、標準ディレクトリでデータベースを見つけることができないことです。ただし、「127.0.0.1」は TCP (Transmission Control Protocol) を使用します。つまり、基本的には、コンピュータ上の「ローカル インターネット」を介して実行されるため、この場合、UNIX ソケットよりもはるかに信頼性が高くなります。

おすすめ記事