2012-05-25 123 views
2

我試圖從服務器Y上的php腳本訪問服務器X上的MySQL數據庫。兩者都是專用的cPanel服務器,我有root訪問權限。以下是我所嘗試的:遠程MySQL連接問題 - 丟失與MySQL服務器的連接(110)

  1. 在服務器X上,我將服務器Y的IP地址放在WHM的「其他MySQL訪問主機」功能中。
  2. 在服務器X上,我登錄到主機數據庫賬戶的cPanel,我試圖連接到該服務器,並在「遠程數據庫訪問主機」頁面上輸入了服務器Y的IP。
  3. 在服務器X上,我將服務器Y的IP列入防火牆,並打開傳入/傳出端口3306 TCP。
  4. 在服務器XI添加的服務器Ÿ的IP地址到/etc/hosts.allow文件中

儘管所有的這些事情我已經試過,每當我試圖在服務器YI運行腳本得到超時消息:

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()); 

謝謝!

回答

1

不知道它會有多少幫助,但嘗試打開my.cnf並用您的實時服務器ip替換綁定地址設置(127.0.0.1或localhost)。

+0

我剛剛嘗試過並重新啓動MySQL,但似乎沒有幫助。 –

0

您是否已聯繫您的託管服務提供商以查看他們是否可以提供幫助?

在你連接的linux機器上是否有防火牆?

你用127.0.0.1和localhost測試了你的my.cnf文件嗎?

你在兩臺機器上運行的是哪個版本的MySQL?你可以升級它們嗎?

+0

我還沒有聯繫我的託管公司,因爲我試圖避免它,但這可能是下一步。遠程機器上有一個防火牆,但正如我所說,我將其他服務器的IP列入了白名單,並打開了端口3306.我只是嘗試了my.cnf破解,它也沒有效果。兩臺服務器都運行v5.1.62-cll –