【问题标题】:Can't connect to MySQL server on 'IP' (4)无法连接到“IP”上的 MySQL 服务器 (4)
【发布时间】:2014-08-01 07:49:42
【问题描述】:

连接已经完成,但有时我在运行 cron JOB 脚本时遇到此错误

Can't connect to MySQL server on 'myhost' (4)

我的脚本从 3 个月开始运行。从昨天开始,我得到了上述答复。我的脚本运行正常,有时连接成功,但有时因上述响应而失败。

请告诉我正确的解决方法。

【问题讨论】:

  • 你的mysql服务器是在同一台机器上吗?如果没有,您的 mysql 服务器是否可以从外部 IP 地址访问?
  • 不,mysql服务器不在同一台机器上,可以访问数据库服务器。因为连接正常,但有时未连接。表示如果脚本运行 10 次,则 1 次失败(可能)。失败率为 10%(大约)。
  • 也许你没有关闭mysql_connection,同时达到了mysql连接的限制?但我不认为这是问题所在。

标签: php mysql cron


【解决方案1】:

可能是连接超时。

尝试用这个扩展它: https://stackoverflow.com/a/5567251/1489237

另外,请尝试使用此代码检查连接时间以及是否发生超时。

for($i=0;$i<100;$i++){
    $start = time();
    //mysql connection
    //check connection and outputs success/error message
    $end = time();
    echo "Elapsed time for connection $i is ". ($start-$end). " seconds.";
}

【讨论】:

  • 不,mysql服务器不在同一台机器上,可以访问数据库服务器。因为连接正常,但有时未连接。表示如果脚本运行 10 次,则 1 次失败(可能)。失败率为 10%(大约)。
  • 那是我的意思,我注意到它不在同一台机器上,这就是我猜测连接超时的原因。这是 mysql 连接中唯一可以改变的部分。如果它在 9/10 工作,我们确定它不是凭据、防火墙或缺少驱动程序。所以这一定是一个超时问题。这就是为什么我建议延长超时时间。您还可以创建一个测试脚本来执行一个 for 循环,该循环与该 mysql 服务器连接和断开连接 100 次,并输出所用时间。我会发布一些代码
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-03-15
  • 2012-11-30
  • 2017-01-30
  • 1970-01-01
  • 2014-02-08
  • 1970-01-01
  • 2012-02-08
相关资源
最近更新 更多