我在Ubuntu机器上安装了MySQL 5.1.41服务器。我通过TCP / IP从我的Windows机器通过Workbench连接到它。我运行了一个更大的查询,900秒后我得到了以下消息,(服务器的配置文件my.cnf中没有定义wait_timeout)
Error Code: 2013. Lost connection to MySQL server during query
但是当我使用show processlist;
命令查看进程列表时,我仍然可以看到我的查询正在运行。
我收到了这个链接http://dev.mysql.com/doc/refman/5.0/en/gone-away.html,我找到了以下的行
Windows上的问题是在某些情况下MySQL没有得到 写入到服务器的TCP / IP连接时来自操作系统的错误, 但是在尝试从中读取答案时会出现错误 连接。
我不确定这是否是我观察的原因。
请在此澄清我。
提前致谢!!
答案 0 :(得分:1)
关闭连接不是停止查询的理由。查询可能是更新,或者是某种事务,或者选择输出到远程(服务器)文件。
封闭连接只是意味着,在执行查询后,您不会从DBMS接收任何数据(数据,时间 - 没有)。
关闭连接的原因可能不同,如SO-User posted。尝试增加
在服务器端:
在客户端:
不要忘记重新加载DBMS配置并重启客户端(当然)
答案 1 :(得分:0)
在MySQL WorkBench中,我们可以选择更改超时。
在
下找到它 Edit → Preferences → SQL Editor → DBMS connection read time out (in seconds): 600
将值更改为6000或更高。
<强>更新强>
与MySQL服务器的连接丢失
此错误消息可能有三种原因。
通常它表示网络连接故障,您应该检查 如果频繁发生此错误,则网络状况如此。如果 错误消息包括“在查询期间”,这可能是你的情况 正在经历。
有时候,“查询期间”表单会在数百万行时发生 作为一个或多个查询的一部分发送。如果你知道这是 发生这种情况时,你应该尝试从默认值增加net_read_timeout 30秒到60秒或更长,足以用于数据 转移到完成。
更少见的是,当客户端尝试初始化时,可能会发生这种情况 连接到服务器。在这种情况下,如果你的connect_timeout值 设置为仅几秒钟,您可能能够解决问题 通过将它增加到十秒,如果你有很长的话可能更多 距离或连接速度慢。你可以确定你是否 通过使用SHOW GLOBAL STATUS LIKE来体验这种不常见的原因 'Aborted_connects'。每个首字母会增加一个 连接尝试服务器中止。你可能会看到“阅读 授权数据包“作为错误消息的一部分;如果是的话,那也是 表明这是你需要的解决方案。
如果原因不是刚才描述的原因,那么您可能正在经历 BLOB值大于max_allowed_packet的问题, 这可能会导致某些客户端出现此错误。有时你可能会看到一个 ER_NET_PACKET_TOO_LARGE错误,确认您需要 增加max_allowed_packet。
文档链接:Error lost connection 并检查here