web-dev-qa-db-ja.com

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

PHP接続を使用して、phpmyadminにあるMySQLデータベースに接続しようとしています。接続が成功したかどうかを確認しようとするだけでは、接続についての空想はありません。 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]そのようなファイルまたはディレクトリはありません

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

これに関するヘルプをいただければ幸いです。

38
Jonck

接続が機能しなかった理由を見つけました。ポート8889に接続する必要があるときに、接続がポート8888に接続しようとしたためです。

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

これにより問題が修正されましたが、サーバー名をlocalhostに変更してもエラーが発生します。

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

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

37
Jonck

私の場合、MySQLサーバーは実行されていませんでした。 MySQLサーバーを再起動し、問題は解決しました。

//on ubuntu server
Sudo /etc/init.d/mysql start

MySQL停止の問題を回避するには、Ubuntu 14.04 LTS Linuxの「initctl」ユーティリティを使用して、障害または再起動の場合にサービスが確実に再起動するようにします。データ保持の目的でこの操作を実行する前に、ルートボリュームのスナップショット(mysqlを停止した状態)を話すことを検討してください[8]。次のコマンドを使用して、「initctl」ユーティリティを使用して、停止および開始操作でmysqlサービスを管理できます。

$ Sudo initctl stop mysql
$ Sudo initctl start mysql

動作を確認するには、サービスのステータスを確認してプロセスID(PID)を取得し、「mysql」プロセスを強制終了して障害をシミュレートし、しばらくして(通常1分以内に)新しいプロセスIDで実行中のステータスを確認します次のコマンドを使用します。

$ Sudo initctl status mysql         # get pid
$ Sudo kill -9 <pid>                # kill mysql process
$ Sudo initctl status mysql         # verify status as running after sometime
4
vinod

MAMPを使用して、Host=localhostHost=127.0.0.1に変更しました。しかし、新しい問題が発生しました"connection refused"

'port' => '8889''Datasources' => [に入れることでこれを解決しました

0
Quentin Vaisala