2

サーバーYのphpスクリプトからサーバーXのMySQLデータベースにアクセスしようとしています。どちらもルートアクセス権を持つ専用のcPanelサーバーです。これが私が試したことです:

  1. サーバーXIで、サーバーYのIPアドレスをWHMの「追加のMySQLアクセスホスト」機能に配置します。
  2. サーバーXIで、接続しようとしているデータベースをホストしているアカウントのcPanelにログインし、[リモートデータベースアクセスホスト]ページでサーバーYのIPを入力しました。
  3. サーバーXIで、ファイアウォール内のサーバーYのIPをホワイトリストに登録し、着信/発信ポート3306TCPを開きました。
  4. サーバーXIで、サーバーYのIPアドレスを/etc/hosts.allowファイルに追加しました

私が試したこれらすべてのことにもかかわらず、サーバーYでスクリプトを実行しようとすると、タイムアウトメッセージが表示されます。

Warning: mysql_connect() [function.mysql-connect]: Lost connection to MySQL server at 'reading initial communication packet', system error: 110

これは私のPHPコードです:

$host = '123.456.789.0'; //server X's IP
$db = 'user_test';
$user = 'user_test';
$pass = 'password';

if(mysql_connect($host, $user, $pass)){
    mysql_select_db($db);
}
else die(mysql_error());

ありがとう!

4

2 に答える 2

1

どれだけ役立つかはわかりませんが、my.cnf を開いて、bind-address 設定 (127.0.0.1 または localhost) を実際のサーバー IP に置き換えてみてください。

于 2012-05-25T22:50:45.980 に答える
0

ホスティングプロバイダーに連絡して、彼らが助けてくれるかどうかを確認しましたか?

接続している Linux マシンにファイアウォールはありますか?

my.cnf ファイルを 127.0.0.1 と localhost でテストしましたか?

両方のマシンで実行している MySQL のバージョンは何ですか? それらをアップグレードできますか?

于 2012-05-25T23:00:10.667 に答える