PDOException SQLSTATE ファイルまたはディレクトリが存在しません
P粉038161873
P粉038161873 2023-08-10 17:44:11
0
2
663
<p> (非常に基本的な) Web サイトを fortrabbit に正常にデプロイできたと思いますが、SSH に接続したら、<code>php 職人移行</code> または <code>php 職人 db:seed< などのコマンドを実行します。 ;/code>)、次のエラー メッセージが表示されます: </p> <pre class="brush:php;toolbar:false;">[PDOException] SQLSTATE[HY000] [2002] そのようなファイルまたはディレクトリはありません <p>テーブルが存在するため、ある時点で移行は成功したはずですが、それはなぜ今うまくいかないのかの説明にはなりません。 </p>
P粉038161873
P粉038161873

全員に返信(2)
P粉731977554

このエラーの最も単純な原因の 1 つは、MySQL サーバーが実行されていないことです。したがって、最初のステップは検証することです。機能している場合は、他の提案を続けてください:

まったく同じ問題に遭遇しました。上記の解決策はどれも私にとっては役に立ちませんでした。 /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 (伝送制御プロトコル) を使用します。つまり、コンピュータ上の「ローカル ネットワーク」上で実行され、UNIX ソケットよりも信頼性が高くなります。

いいねを押す +0
P粉148434742

エラー メッセージは、ソケット (サポートされていない) を介して MySQL 接続を確立しようとしていることを示しています。

Laravel (artisan) のコンテキストでは、別の/正しい環境を使用したい場合があります。例: php 職人 移行 --env=production (またはその他の環境)。 ここを参照してください。

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート