很多人问这个问题,但之前的答案都没有解决我的问题。
我正在运行一个cakephp web应用程序,每隔一段时间就会连续出现两个错误: 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\u allowed\u packet=512m,但这并没有解决问题。
我拒绝相信有人正在发送超过512mb的数据包!我错过什么了吗?是否存在某个缓存或队列,这些缓存或队列经常会被填满,重新启动后会被清除,并使一切重新正常工作?
1条答案
按热度按时间gwbalxhn1#
原来是cakephp<3.6.10的bug
此处修复:https://github.com/cakephp/cakephp/pull/11668