【问题标题】:Remote MySQL Connection Issues - Lost connection to MySQL server (110)远程 MySQL 连接问题 - 与 MySQL 服务器的连接丢失 (110)
【发布时间】:2012-05-25 22:38:35
【问题描述】:

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

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

谢谢!

【问题讨论】:

    标签: php mysql


    【解决方案1】:

    不确定会有多大帮助,但请尝试打开 my.cnf 并将绑定地址设置(127.0.0.1 或 localhost)替换为您的实时服务器 ip。

    【讨论】:

    • 我刚刚尝试过并重新启动了 MySQL,但它似乎没有帮助。
    【解决方案2】:

    您是否联系过您的托管服务提供商,看看他们是否可以提供帮助?

    您要连接的 linux 机器上是否有防火墙?

    您是否使用 127.0.0.1 和 localhost 测试了您的 my.cnf 文件?

    你在两台机器上运行的是什么版本的 MySQL?可以升级吗?

    【讨论】:

    • 我还没有联系我的托管公司,因为我试图避免它,但这可能是下一步。远程机器上有防火墙,但就像我说的那样,我将另一台服务器的 IP 列入白名单并打开了 3306 端口。我刚刚尝试了 my.cnf hack,它也没有任何效果。两台服务器都在运行 v5.1.62-cll
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-29
    • 2015-05-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多