PHP 接続に失敗しました: SQLSTATE 接続が拒否されました
P粉068510991
2023-08-23 18:49:26
<p>PHP 接続を使用して phpmyadmin 上の MySQL データベースに接続しようとしています。接続に関して特別なことは何もありません。接続が成功したかどうかを確認したかっただけです。 MAMP を使用してデータベースをホストしており、使用しようとしている接続は次のとおりです: </p>
<pre class="brush:php;toolbar:false;"><?php
$サーバー名 = "127.0.0.1";
$ユーザー名 = "ルート";
$password = "ルート";
試す {
$conn = 新しい PDO("mysql:host=$servername;dbname=AppDatabase", $username, $password);
// PDO エラー モードを例外に設定します
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
echo "正常に接続されました";
}
catch(PDOException $e)
{
echo "接続に失敗しました: " . $e->getMessage();
}
?></pre>
<p>Postman を使用して接続が機能していることをテストしていますが、次のエラー メッセージが表示され続けます: </p>
<ブロック引用>
<p>接続に失敗しました: SQLSTATE[HY000] [2002] 接続が拒否されました</p>
</blockquote>
<p>以前は次のエラー メッセージが表示されていました: </p>
<ブロック引用>
<p>接続に失敗しました: SQLSTATE[HY000] [2002] そのようなファイルまたはディレクトリはありません</p>
</blockquote>
<p>これは、サーバー名を localhost に設定しており、それを IP アドレスに変更すると接続が拒否され、何が問題になっているのかわかりません。 </p>
<p>この問題に関してご協力いただければ幸いです。 </p>
私は、すべてのコンテナが
docker
コンテナであり、移行にPhinx
を使用するdocker
環境でかなりの時間を費やしています。異なる構成に対する異なる応答を共有するためだけに。実用的なソリューション
リーリー無効な解決策
リーリー次のように
リーリーPhinx
を実行しました。接続が機能しない理由がわかりました。ポート 8889 に接続する必要があるときに、接続がポート 8888 に接続しようとしたことが原因でした。
リーリーこれで問題は解決しましたが、サーバー名を localhost に変更すると依然としてエラーが発生しました。
接続失敗: SQLSTATE[HY000] [2002] そのようなファイルまたはディレクトリはありません
ただし、サーバー名として IP アドレスを入力すると、正常に接続されます。