1. ホーム
  2. スクリプト・コラム
  3. その他

[解決済み】PHP 接続に失敗しました。SQLSTATE[HY000] [2002] 接続が拒否されました。

2022-01-01 20:41:46

質問

phpmyadminにあるMySQLデータベースにPHP接続をしたいのですが、データベースホストがMAMPで、接続コードは以下の通りです。

<?php
$servername = "127.0.0.1";
$username = "root";
$password = "root";

try {
    $conn = new PDO("mysql:host=$servername;dbname=AppDatabase", $username, $password);
    // set the PDO error mode to exception
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    echo "Connected successfully"; 
}
catch(PDOException $e)
{
    echo "Connection failed: " . $e->getMessage();
}
?>

実行すると、エラーが発生します。

Connection failed: SQLSTATE[HY000] [2002] Connection refused

というエラーメッセージが出るようになる前。

Connection failed: SQLSTATE[HY000] [2002] No such file or directory

これは、サーバー名をlocalhostに設定していたためで、これをIPアドレスに変更すると、エラーが発生します。 connection refused

どうすればいいですか?

接続がうまくいかない原因がわかりました。ポート8889に接続する必要があるのに、ポート8888に接続しようとしていたためでした。

$conn = new PDO("mysql:host=$servername;port=8889;dbname=AppDatabase", $username, $password); 

これで問題は解決しましたが、サーバー名をlocalhostに変更してもエラーは発生します。

接続に失敗しました。SQLSTATE[HY000] [2002] そのようなファイルまたはディレクトリがありません。

しかし、サーバー名にIPアドレスを入力すると正常に接続されます。