很多人问这个问题,但是以前的答案都没有解决我的问题。
我正在运行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_packet = 512M,但这并不能解决问题。
我拒绝相信有人正在发送大于512MB的数据包!我想念什么吗?在某个地方是否存在一些缓存或队列,这些缓存或队列经常会被填满,以重新启动清除并使一切恢复正常?