“ MySQL服务器已消失”,后跟“获得了一个大于'max_allowed_pa​​cket'字节的数据包”

时间:2018-08-21 08:24:10

标签: php mysql unix cakephp

很多人问这个问题,但是以前的答案都没有解决我的问题。

我正在运行CakePHP Web应用程序,每隔一段时间我就会连续出现2个错误:

MySQL server has gone away in [/var/www/html/vendor/cakephp/cakephp/src/Database/Driver/PDODriverTrait.php, line 159]

跟着

SQLSTATE[08S01]: Communication link failure: 1153 Got a packet bigger than 'max_allowed_packet' bytes

在尝试将新记录插入数据库时​​会发生这种情况。

出现错误后,数据库连接仍然可以正常工作,因为PHP仍可以从中读取数据,但是任何新的INSERT到数据库中都会导致另一个Got a packet bigger than 'max_allowed_packet' bytes错误。此时唯一的解决方案是重新启动mySQL,否则错误将永远在其他所有INSERT上显示。

我已经按照建议在my.cnf中设置max_allowed_pa​​cket = 512M,但这并不能解决问题。

我拒绝相信有人正在发送大于512MB的数据包!我想念什么吗?在某个地方是否存在一些缓存或队列,这些缓存或队列经常会被填满,以重新启动清除并使一切恢复正常?

1 个答案:

答案 0 :(得分:1)

原来是CakePHP <3.6.10的一个错误

在此处修复:https://github.com/cakephp/cakephp/pull/11668