PDO:MySQL服务器已经消失了

2022-08-30 10:45:32

我有一个脚本,每晚都会做很多跑腿工作。

它使用在循环中执行的 PDO 预准备语句。

前几个运行良好,但后来我到达了一个点,它们都失败了,并出现错误:“MySQL服务器已经消失了”。

我们运行 MySQL 5.0.77。

PHP 版本 5.2.12

网站的其余部分运行良好。


答案 1

最有可能的是,您向服务器发送的数据包比允许的最大数据包长。

当您尝试插入超过服务器最大数据包大小的 时,即使在本地服务器上,也会在客户端看到以下错误消息:BLOB

MySQL服务器已经消失了

以及服务器日志中的以下错误消息:(如果启用了错误日志记录)

错误 1153 收到大于“max_allowed_packet”字节的数据包

要解决此问题,您需要确定将要插入的最大大小,并相应地设置,例如:BLOBmax_allowed_packetmy.ini

[mysqld]
...
max_allowed_packet = 200M
...

答案 2

B.5.2.9.MySQL服务器已经消失 MySQL手册的部分列出了此错误的可能原因。

也许您处于其中一种情况?- 特别是考虑到您正在运行长时间的操作,关于wait_timeout的观点可能会很有趣...


推荐