为什么MYSQL Server在PHP 5.4.11下"消失",但不在5.3.17下?

Tom*_*Tom 2 php mysql installation mysqli

我已经迁移到PHP 5.4.11,除了它会在长维护脚本中给出"MySQL服务器已经消失"的错误.PHP 5.3.17没有这样做.

我需要添加/删除php.ini或my.cnf指令吗?我是否需要更新我的查询PHP类脚本(我们使用的是mysqli扩展名)?

use*_*109 5

您应该检查MySQL参考手册C.5.2.9. MySQL server has gone away.它列出了为什么会发生这种情况的许多可能原因.它在页面上提到:

MySQL服务器消失的最常见原因是服务器超时并关闭了连接.

由于您运行的是长维护脚本,我怀疑这就是原因.页面上的另一点:

默认情况下,如果没有发生任何事情,服务器会在八小时后关闭连接.您可以通过在启动mysqld时设置wait_timeout变量来更改时间限制.请参见第5.1.4节"服务器系统变量".

您可以尝试设置mysqli.reconnect为1(在您的php.ini中),或MYSQLI_OPT_CONNECT_TIMEOUT选项增加.请参阅mysqli配置.您还应该考虑从5.3到5.4的注释.如果不查看代码,很难确定问题.