我有一个脚本,每晚都会进行大量跑腿工作。
它使用在循环中执行的 PDO 准备语句。
前几个运行良好,但后来我发现它们都失败并出现错误: “MySQL 服务器已经消失”。
我们运行 MySQL 5.0.77。
PHP 版本 5.2.12
网站的其余部分运行良好。
最佳答案
很可能您向服务器发送的数据包长度超过了允许的最大数据包数。
当您尝试插入BLOB
时超出了服务器的最大数据包大小,即使在本地服务器上,您也会在客户端看到以下错误消息:
MySQL server has gone away
服务器日志中出现以下错误消息:(如果启用了错误日志记录)
Error 1153 Got a packet bigger than 'max_allowed_packet' bytes
要解决此问题,您需要确定最大 BLOB
的大小是多少您将永远插入并设置 max_allowed_packet
在my.ini
因此,例如:
[mysqld]
...
max_allowed_packet = 200M
...
关于php - PDO:MySQL 服务器已消失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42490257/