使用mysqldump进行数据库备份时,如果遇到以下错误,表示执行备份时超时了。

Error 2013: Lost connection to MySQL server during query when dumping table `x_consume` at row: 202091

说明mysql的timeout设置有问题
解决办法如下:

查询已有超时配置,使用root帐号登录数据库,执行以下使命:

SHOW global VARIABLES LIKE '%timeout%'

找到 net_read_timeout 和 net_write_timeout 看后面的数据是多少,一般都是30和60,把他稍改大一点,更改方法如下:

方法一:(临时生效,不用重启:)数据库执行以下两条语句:

SET GLOBAL net_read_timeout = 120; 
SET GLOBAL net_write_timeout = 120;
SET GLOBAL max_allowed_packet = 52428800;

再查询,就是把超时时间改成了120秒了,根据实际情况进行调整

注意:此方法更改后,mysql重启后会失效,可以选这么修改,看下下一次备份是否正常,如果不正常,适当调整net_read_timeout和net_write_timeout 的值,max_allowed_packet就保的这个就可以了。确定没问题后,再使用下面的方法二,永久,重启后也会生效。

方法二:(需要重启mysql,永久生效)

打开mysql的配置文件【windows下为:my.ini;linux下为my.cnf】
在[mysqld]下添加以下两条:

net_read_timeout=120
net_write_timeout=120
max_allowed_packet = 52428800

重启mysql后生效。

作者:宋德美  创建时间:2024-01-16 13:37
最后编辑:宋德美  更新时间:2025-05-29 10:43