web-dev-qa-db-ja.com

PHP警告:mysqli_connect():(HY000 / 2002):接続は拒否されました

私はPHP 5.5とMAMP( here からダウンロード))を使用しています:

次のような基本的なスクリプトがあります。

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

// Create connection
$conn = mysqli_connect($servername, $username, $password);

// Check connection
if (!$conn) {
    die("Connection failed: " . mysqli_connect_error());
}
echo "Connected successfully";
?>

このスクリプトを実行すると、次のエラーが表示されます。

PHP Warning:  mysqli_connect(): (HY000/2002): Connection refused in /Applications/MAMP/htdocs/test/test.php on line 7

MAMPまたはPHP内で設定する必要がある構成上の問題はありますか?

17
johncorser

他の誰かがこの問題に遭遇した場合、MAMP for mysqlのデフォルトポートは8889ですが、phpがmysqlに使用することを想定しているポートは3306です。そのため、MAMPを開いて設定に移動し、MAMP mysqlポートを3306に変更してから、mysqlサーバーを再起動する必要があります。これで、Host = localhost、user = root、pass = rootで接続が成功するはずです。

22
johncorser

場合によっては、サーバーにmysql dbポートIDを含める必要があります。

$serverName = "127.0.0.1:3307";
9
Ronny Kibet

再び機能させるために、ファイルを削除しました

ib_logfile0

そして

ib_logfile1

から:

/Applications/MAMP/db/mysql56/ib_logfile0 

Mac 10.13.3
MAMP:バージョン4.3(853)

1
FrancisUster

Mamp Mysql Databaseポートを8889に変更する必要があります。

1
rashedcs

私の場合、XAMPPを使用していましたが、エラーを通知するログがありました。それを見つけるには、XAMPPコントロールパネルに移動し、MySQLの[構成]をクリックして、[ログを開く]をクリックします。

ログの最新のデータは下部にあり、ログは日付、時刻、数字、および「メモ」または「エラー」と表示される括弧内のテキストで構成されています。 「エラー」と表示されているものが問題の原因である可能性があります。

私にとって、私のエラーは問題を引き起こしているテーブルスペースであったため、指定された場所のデータベースファイルを削除しました。

注:XAMPPのインストール用のテーブルスペースファイルは別の場所にある場合がありますが、/opt/lampp/var/mysql 私のために。これはDebianベースのディストリビューションでのXAMPPの典型的なものだと思います。また、LinuxのUbuntuベースのディストリビューション(Feren OS)でXAMPPを実行しているため、ログを表示するためにコントロールパネルをクリックする方法についての私の指示は、少し異なる場合があります。

0
StealthDroid