php - 为什么MYSQL Server "go away"在PHP 5.4.11下,在5.3.17下却不是?

标签 php mysql mysqli installation

我已经迁移到 PHP 5.4.11,除了它会在长期维护脚本中给出“MySQL 服务器已消失”错误外,它可以正常工作。 PHP 5.3.17 没有这样做。

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

最佳答案

你应该检查 MySQL Reference ManualC.5.2.9 下。 MySQL 服务器已消失。它列出了发生这种情况的许多可能原因。它在页面上提到:

The most common reason for the MySQL server has gone away error is that the server timed out and closed the connection.

由于您正在运行长时间的维护脚本,我怀疑这就是原因。页面的另一点:

By default, the server closes the connection after eight hours if nothing has happened. You can change the time limit by setting the wait_timeout variable when you start mysqld. See Section 5.1.4, “Server System Variables”.

您可以尝试将 mysqli.reconnect 设置为 1(在您的 php.ini 中),或者从 options 增加 MYSQLI_OPT_CONNECT_TIMEOUT .查看mysqli config .您还应该查看 migrating from 5.3 to 5.4笔记。如果不查看您的代码,很难查明问题所在。

关于php - 为什么MYSQL Server "go away"在PHP 5.4.11下,在5.3.17下却不是?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15009156/

相关文章:

php - 马拉雅拉姆语字体字符作为未知字符保存到mysql数据库中

php - mysqli_fetch_assoc()需要参数/调用成员函数bind_param()错误。如何获取并修复实际的mysql错误?

php - 如何更改查询的数组方案结果?

php - 缺少 Amazon AMI PDO MYSQL 驱动程序。没有适用于 PHP 7.1 的软件包。如何安装 7.1 PDO_MYSQL 驱动程序?

php - 为什么将 count() 添加到我的 sql 查询中会使其无法工作?

php - 没有 php artisan 护照的护照 : install on deploying server

PHP 查询不返回带有 varchar 的行

PHP MySQL 使用 JsonString (Array) 插入记录

php - 为什么 crypt() 会产生不同的结果?

php - 用于精确匹配一个或两个单词的 mysql 正则表达式