我有一个脚本,每晚做很多腿部工作.
它使用在循环中执行的PDO预处理语句.
前几个运行正常,但随后我发现它们都失败并出现错误:"MySQL服务器已经消失".
我们运行MySQL 5.0.77.
PHP版本5.2.12
网站的其余部分运行良好.
该B.5.2.9.MySQL服务器已经消失了MySQL手册的一部分,列出了此错误的可能原因.
也许你处于其中一种情况?- 特别是考虑到你正在进行长时间的操作,关键点wait_timeout
可能很有意思......
您最有可能向服务器发送的数据包长于允许的最大数据包.
当您尝试插入BLOB
超过服务器的最大数据包大小时,即使在本地服务器上,您也会在客户端上看到以下错误消息:
MySQL服务器已经消失了
并在服务器日志中显示以下错误消息:(如果启用了错误日志记录)
错误1153获得的数据包大于'max_allowed_packet'字节
为了解决这个问题,你需要决定什么是最大的尺寸BLOB
,你将永远插入,并设置max_allowed_packet
在my.ini
相应的,例如:
[mysqld] ... max_allowed_packet = 200M ...