“MySQL服务器已经消失”,接着是“得到的数据包大于'max_allowed_pa cket'字节”

问题描述 投票:0回答:1

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

我正在运行一个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!我错过了什么吗?是否有一些缓存或队列,每隔一段时间才会填满,重启清除并使一切工作再次正常?

php mysql unix cakephp
1个回答
1
投票

原来这是CakePHP <3.6.10的一个错误

修正了这里:https://github.com/cakephp/cakephp/pull/11668

© www.soinside.com 2019 - 2024. All rights reserved.