您的位置:首页 > 产品设计 > UI/UE

mysqldump:Error 2013 Lost connection to MySQL server during query ‘table’ at ... rows

2010-07-15 15:40 465 查看
最近在使用mysqldump备份,为了省事就直接向NFS备份服务器备份了,就遭遇了上面的错误。

在网上搜了一下,原来在在使用mysqldump的时候,尤其是向NFS上备份的时候,都可能会遇到这个错误。

原因如下:在向NFS上备份的时候,MySQL Server端首先从数据文件中检索出数据,然后分批将数据返回给mysqldump客户端,然后mysqldump客户端将数据写入到NFS上。一般地,向NFS上写入数据的速度较之Server端检索发送数据的速度要慢得多,就会导致mysqldump客户端无法及时接受Server端发送过来的数据并写入NFS,Server端的数据就会积压在内存中等待发送,而这个等待不是无限期的,当Server的等待时间超过net_write_timeout(默认是60秒)时,mysqldump的连接就会被断开,同时抛出错误error: 2013: Lost connection...。增加net_write_timeout可以解决上述的问题的。在实践中发现,在增大net_write_timeout后,Server端会消耗更多的内存,有时甚至会导致swap的使用(并不确定是不是修改net_write_timeout所至)。建议在mysqldump之前修改net_write_timeout为一个较大的值(如1800),在mysqldump结束后,在将这个值修改到默认的60。

其实解决这个问题的思路也不难,就是先把mysqldump的备份放到本地,压缩后在copy到NFS上就行了,虽然方法稍显笨拙和费时,但胜在简单吗!

参考:http://hi.baidu.com/ldtrain/blog/item/1c7f87be76c9020119d81f18.html

其它可能遇到error: 2013的解决方法:

在mysql选项文件(如my.cnf)中加入

[mysqld]

skip-name-resolve

禁止MySQL对外部连接进行DNS解析,使用这一选项可以消除MySQL进行DNS解析的时间
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐