即使失去连接,MySQL Query也会运行

时间:2015-02-20 09:18:19

标签: mysql

我在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连接时来自操作系统的错误,   但是在尝试从中读取答案时会出现错误   连接。

我不确定这是否是我观察的原因。

请在此澄清我。

提前致谢!!

2 个答案:

答案 0 :(得分:1)

关闭连接不是停止查询的理由。查询可能是更新,或者是某种事务,或者选择输出到远程(服务器)文件。

封闭连接只是意味着,在执行查询后,您不会从DBMS接收任何数据(数据,时间 - 没有)。

关闭连接的原因可能不同,如SO-User posted。尝试增加

在服务器端:

  • WAIT_TIMEOUT
  • max_allowed_pa​​cket的

在客户端:

不要忘记重新加载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_pa​​cket的问题,   这可能会导致某些客户端出现此错误。有时你可能会看到一个   ER_NET_PACKET_TOO_LARGE错误,确认您需要   增加max_allowed_pa​​cket。

文档链接:Error lost connection 并检查here