2

我正在尝试从服务器 Y 上的 php 脚本访问服务器 X 上的 MySQL 数据库。两者都是我具有 root 访问权限的专用 cPanel 服务器。这是我尝试过的:

  1. 在服务器 XI 上,将服务器 Y 的 IP 地址放入 WHM 的“附加 MySQL 访问主机”功能中。
  2. 在服务器 XI 上,为托管我尝试连接的数据库的帐户登录 cPanel,并在“远程数据库访问主机”页面上输入服务器 Y 的 IP。
  3. 在服务器 XI 上,防火墙中的服务器 Y 的 IP 被列入白名单,并打开了传入/传出端口 3306 TCP。
  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 并将绑定地址设置(127.0.0.1 或 localhost)替换为您的实时服务器 ip。

于 2012-05-25T22:50:45.980 回答
0

Have you contacted your hosting provider to see if they can help?

Is there a firewall on the linux machine you're connecting to?

Did you test your my.cnf file with 127.0.0.1 and localhost?

What version of MySQL are you running on both machines? Can you upgrade them?

于 2012-05-25T23:00:10.667 回答