1. ホーム
  2. php

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

2022-01-31 11:19:21

質問

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();
}
?>

postmanを使って接続がうまくいっているかどうかテストしているのですが、このエラーメッセージがずっと表示されます。

接続に失敗しました。SQLSTATE[HY000] [2002] 接続が拒否されました。

のエラーメッセージが表示される前までは。

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

これは、サーバー名をlocalhostに設定していたためです。これをIPアドレスに変更すると、接続が拒否され、何が間違っているのか全く分かりません。

この件に関するヘルプをお願いします。

解決方法は?

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

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

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

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

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