我正在尝试从服务器Y上的php脚本访问服务器X上的MySQL数据库。 两者都是我具有root访问权限的专用cPanel服务器。 这是我尝试过的:
- 在服务器X上,我将服务器Y的IP地址放在WHM的"其他MySQL访问主机"功能中。
- 在服务器 X 上,我登录到托管我尝试连接的数据库的帐户的 cPanel 并在"远程数据库访问主机"页面上输入了服务器 Y 的 IP。
- 在服务器 X 上,我将服务器 Y 的 IP 列入防火墙白名单,并打开传入/传出端口 3306 TCP。
- 在服务器 X 上,我将服务器 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());
谢谢!
不确定它会有多大的帮助,但请尝试打开 my.cnf 并将绑定地址设置(127.0.0.1 或本地主机)替换为您的实时服务器 IP。
您是否联系过您的托管服务提供商,看看他们是否可以提供帮助?
您要连接的 Linux 计算机上是否有防火墙?
您是否使用 127.0.0.1 和本地主机测试了您的 my.cnf 文件?
您在两台计算机上运行的MySQL版本是什么?你能升级它们吗?