web-dev-qa-db-ja.com

mysqli_connect():(HY000 / 2002):ターゲットマシンが積極的に拒否したため、接続できませんでした

このような質問はたくさんありますが、解決策が見つかりませんでした。

私が試したもの:-

  • チェックされたファイアウォール

  • pCとApacheサーバーを再起動しました

  • mYSQLを再起動しました

  • 私のコードをチェックしました

  • 私が知っているすべてをインターネットで見つけました

ここに私のコードがあります:-

<?php

$dbhost = 'localhost:3360';
$dbuser = 'root';
$dbpass = '';
$db     = 'test_db13';


$conn  = mysqli_connect($dbhost,$dbuser,'',$db);

if(! $conn){
  die('Could not connect connect: ') ;
}

echo 'Successfully Connected';


$sql = 'Connected Successfully';
  $retvalue = mysqli_query($sql);

  if(! $retvalue){
    die('Cannot connect to SQL: ');
  }

echo 'DataBase test_db13 has successfully created';

mysqli_close($conn);

 ?>

パスワードを設定しましたが、それでもエラーが表示されます。

ファイアウォールの画像は次のとおりです。 enter image description here

最後に、XAMMPが実行されています

enter image description here

7
Sami

XAMPPコントロールパネルを見ると、MySQLサーバーへのポートは_3306_であることが明確に述べられています-_3360_を指定しました。 _3306_はデフォルトであるため、指定する必要はありません。それでも、mysqli_connect()の5番目のパラメーターはポートであり、指定する必要があります。

デフォルトのポートを使用しているため、ポート指定を完全に削除することができます。

_$dbhost = 'localhost';
$dbuser = 'root';
$dbpass = '';
$db     = 'test_db13';
_

参照資料

10
Qirel

3306ではなく間違ったポート番号3360を入力しました。daefault(MySQLの場合は3306)を使用している場合、データベースのポート番号を書き込む必要はありません。

2
dy'sback

あなたのPHPコードで間違ったポートを設定しました。これはコードがどうあるべきかです

<?php

$dbhost = 'localhost';
$dbuser = 'root';
$dbpass = '';
$db     = 'test_db13';

コード内のポートは、3360である必要があるときに3306に設定されますが、これはデフォルトのポートであるため、指定する必要はありません。

1
Roshan Bhumbra

ほとんどの場合、データログの問題です。手順に従ってください。

i)mysqlのデータフォルダーに移動します。 xamppの場合は、C:\ xampp\mysql\dataに移動します。

ii)ib_logfile0やib_logfile1などのログファイル名を探します。

iii)バックアップを作成し、それらのファイルを削除します。

iv)Apacheとmysqlを再起動します。

0
Ravi Ranjan