我正在使用MySQL,并且正在获得"MySQL服务器消失"错误。我试过在PDO构造函数中设置ATTR_TIMEOUT
以及setAttribute()
方法,但两者都不起作用。我还设置了MySQL connect_timeout变量。
无论我在什么时候指定PDO,在几秒钟内,都会返回超时错误。
对于一个非常大的插入,我使用了一个准备好的语句。是否有PDO准备语句的大小限制,破坏连接?
唯一的长度限制是max_allowed_packet
或net_buffer_length
(很可能是前者)。我建议提高max_allowed_packet
,如果你有一个非常大的行插入。
如果您有一个多行的INSERT,那么您也可能以这种方式超过max_allowed_packet。但是,通过插入有限数量的行来管理这一点更容易。
如果你检查mysqldump的输出,例如,他们不会尝试在单个insert语句中插入整个表。他们确实使用多行INSERT,但他们是分批进行的。