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 ソケットよりもはるかに信頼性が高くなります。