私はPHPコード(mysqliの)mysqli_connect():(HY000/2002)の接続に失敗し、リモートサーバー
$host = 'myIP:3306';
$user = 'root';
$pass = 'pass';
$conn = mysqli_connect("$host", "$user", "$pass");
//check connection
if (mysqli_connect_errno())
{
echo "Error: " . mysqli_connect_error();
}
を使用してリモートサーバのデータベースに接続しようとしている私は、データベースを作るためにMYIP/phpmyadminの使用しましたmysqlが正しく動作しているかどうかを確認するためにputtyを使用しました。私はまた、デフォルト(3306)だった私のサーバー上のmysqlのデフォルトポートを調べました。
与えられたエラーは、接続失敗/タイムアウト/応答なしと記載されています。
私もmysqliの代わりにPDOを使ってみましたが、同じ結果が出ました。他のすべての例では、localhostとそのポストで提供されている解決策についてsocketpathを使って接続しています(これはリモートのように私にとって解決策のようには見えません)。
学校によって提供されるLinuxサーバーです。 アイデア前もって感謝します。
host, username, password, dbname, port, socket
ホストとポートが分離されている:mysqli_connect()で
間にいくつかのファイアウォールのようなサウンドは、リクエストをブロックします。 – arkascha
Linuxを使用している場合は、ファイアウォールに例外を追加できます。 Ubuntuでは、これは$ ufw allow 3306です。 – Ben
'telnet myIp 3306'を試してみてください。それでも接続に失敗すると、ネットワークに問題があることがわかります。タイムアウト=ファイアウォールは静かにパケットをドロップします。 connection refused =そのip:portをリッスンしているもの、またはファイアウォールが積極的に接続を拒否しています。 –