记部署系统的 mysql ERROR 2013: lost connection to mysql server during query

记部署系统的 mysql ERROR 2013: lost connection to mysql server during query描述在部署某一系统需要迁移mysql数据,转为sql大概100G左右(数据文件400G左右)。现通过mysqldump导出为sql后远端执行source导入。在导入过程中出现ERROR2013LostconnectiontoMysqlserverduringquery报错。解决流程1、并未在网上找到行之有效的解决办法。2、查阅官方文档。官…

描述

在部署某一系统需要迁移mysql数据,转为sql大概100G左右(数据文件400G左右)。

现通过mysqldump导出为sql后远端执行source导入。

在导入过程中出现 ERROR 2013 Lost connection to Mysql server during query 报错。

 

解决流程

1、并未在网上找到行之有效的解决办法。

 

2、查阅官方文档。

官方文档将 error 2003 与 error 2013 错误放在一起说明

Error Code Description
CR_SERVER_GONE_ERROR The client couldn’t send a question to the server.
CR_SERVER_LOST The client didn’t get an error when writing to the server, but it didn’t get a full answer (or any answer) to the question.

但之后并未针对 error 2013 提供有效的解决方案。

 

3、猜测

正常mysql断开连接会存在确切的返回信息,譬如

客户端超时了,服务器端会先返回客户端信息告诉客户端已超时,后断开连接。

而 error 2013 客户端并未接收到任何服务器端回复。

故判定此时 error 2013 极大程度上是网络被切断而导致的。

 

4、复现错误

复现 error 2013 错误

通过某一客户端连接mysql(称之为客户端A)

另外登录 mysql 执行

show processlist;

找到A客户端连接的进程 id

执行(id 为确切的连接进程id数值)

kill id;

A客户端报错 error 2013

复现成功。

 

5、二次猜测

经测试,系统其余表导入正常,无报错,大小有 <1M – 10G 不等。

唯独只有一张 FQDN 表导入报错。

FQDN表与其它表最大区别在于导入过程中有部分事务提交时间长达10-20分钟。

 

考虑到部署单位使用的为内网中云数据库、且对数据保密性要求极高。

大胆猜测:防火墙对空置连接设置了超时时间,在source导入数据提交过程中长达10-20分钟无网络数据传输,导致防火墙切断连接。

猜测防火墙超时断连策略为(ip + time )而不是(connection + time),因此在xshell连接时挂着mysql命令行并不会被断开而报error 2013。

 

存在疑问:source命令是可以断开后自动重连的,但此处表现情况为 source重连失败或为进行重连。此原因还未找到,待下一步探究。

 

 

6、再次测试

从网络被切断以及进程被kill层级出发。

首先测试source命令的断开重连情况。经测试发现:在事务提交阶段,也就是show processlist后事务若处于sleep状态,且下一步操作非查询类操作(譬如select、show等),这一步操作无法触发重连。

而若是下一步为查询操作则可触发重连。

此现象符合防火墙超时断连猜想。

 

在测试空置连接的超时状况时发现一个问题。

有关2013错误与2006错误的关系。

当时测试mysql服务器端设置的wait_timeout报错的具体信息时,使用python import MysqlDB进行连接,然后sleep等待另一方kill或者超时后,报错为ERROR 2006,而若是terminal 的mysql命令行等待kill或超时后,报错为 ERROR 2013。

猜测可能与交互式连接(terminal登录)/非交互式连接(mysqldb连接)的区别有关。

 

更新时间: 2019.03.14

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/37402.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注