很多人都在问这个问题,但之前的答案都没有解决我的问题。
我正在运行一个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!我错过了什么吗?是否有一些缓存或队列,每隔一段时间才会填满,重启清除并使一切工作再次正常?
原来这是CakePHP <3.6.10的一个错误