php—“mysql服务器已经消失”,然后是“得到了一个大于‘max\u allowed\u packet’字节的数据包”

s6fujrry  于 2021-06-20  发布在  Mysql
关注(0)|答案(1)|浏览(344)

很多人问这个问题,但之前的答案都没有解决我的问题。
我正在运行一个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的数据包!我错过什么了吗?是否存在某个缓存或队列,这些缓存或队列经常会被填满,重新启动后会被清除,并使一切重新正常工作?

gwbalxhn

gwbalxhn1#

原来是cakephp<3.6.10的bug
此处修复:https://github.com/cakephp/cakephp/pull/11668

相关问题