当前位置: 首页 > 知识库问答 >
问题:

MySQL Workbench空闲时会断开连接

沈淇
2023-03-14

我在OS X 10.9.5上使用MySQL Workbench 6.3来管理多个云数据库(托管在Rackspace上),我遇到了以下问题:

闲置5分钟后,会出现以下问题:

  • 我无法运行任何查询(错误 2013:查询期间失去与 MySQL 服务器的连接)
  • 尝试浏览数据库上的表时,我收到诸如“无法获取表”、“无法获取视图”等消息
  • 刷新左侧面板时,出现“错误代码:2006 MySQL服务器已消失”

所以基本上,这种联系消失了。

这真的很烦人,因为它发生在仅仅5分钟不活动之后。因此,我每次都需要关闭连接并重新打开它。

我还尝试了这个:MySQL工作台:如何保持连接处于活动状态,这没有改变任何东西。在我的工作台首选项选项卡中,我有以下设置:

  • DBMS 连接保持活动状态间隔(以秒为单位):600
  • DBMS 连接读取超时(以秒为单位):600
  • DBMS 连接超时(以秒为单位):60

请注意,这个问题恰好发生在5分钟不活动之后!如果我在4'59分钟的时间间隔内运行两个查询,它会非常好。同样,我的同事在他们的工作台上连接到同一个数据库也没有这个问题。

有人对此有解决方案吗?

共有3个答案

姬高澹
2023-03-14

FWIW:根据Kosh的建议,我更改了如下设置,似乎已经解决了WB 6.3在Ubuntu 16上运行的问题:

DBMS connection keep-alive interval (in seconds): 60
DBMS connection read time out (in seconds): 60
DBMS connection time out (in seconds): 30

这可能是过分的,但它是有效的。

方永贞
2023-03-14

这个bug存在于6.0以后的所有MySQL Workbench版本中(目前:6.1、6.2和6.3都有这个bug)。

降级到MySQL工作台6.0. x似乎是解决此问题的唯一方法。

下载MySQL Workbench 6.0.x:http://dev.mysql.com/downloads/workbench/6.0.html

舒枫涟
2023-03-14

转到编辑-

DBMS connection keep-alive interval (in seconds): 600
DBMS connection read time out (in seconds): 600
DBMS connection time out (in seconds): 60

DBMS连接保持活动间隔是指工作台向服务器发送保持活动请求以保持连接活动的频率。

由于 5 分钟 == 300 秒,设置 DBMS 连接保持活动间隔

这将意味着“每250秒发送一次保活请求”。单击确定。

然后退出MySQL Workbench并重新启动它以使更改生效。

如果您使用标准TCP/IP over SSH连接方法,配置SSH ServerAliveInterval也很有帮助。

 类似资料:
  • 检测空闲连接和超时是为了及时释放资源。常见的方法发送消息用于测试一个不活跃的连接来,通常称为“心跳”,到远端来确定它是否还活着。(一个更激进的方法是简单地断开那些指定的时间间隔的不活跃的连接)。 处理空闲连接是一项常见的任务,Netty 提供了几个 ChannelHandler 实现此目的。表8.4概述。 Table 8.4 ChannelHandlers for idle connections

  • 在代理上使用HTTP隧道时,TCP套接字有问题。 客户端(C++)打开到服务器(JAVA)的TCP套接字。我添加了对HTTP代理的支持。一切正常,客户端发送“HTTP Connect”请求如下所示,并在以下情况下继续普通TCP连接: 然而,如果代理中配置了空闲超时,并且没有发送实际数据,则尽管客户端每60秒发送TCP保持活动数据包,但连接将终止。空闲超时配置为10分钟。

  • null 如果我理解正确的话,我们应该在启动时有1个空闲连接,根据负载从0到3,对吗? 正在发生的情况是:启动时1个连接,如果负载较低,最多3个空闲连接,高负载后超过3个空闲连接。然后这些连接不会立即关闭,我们不知道它们何时/是否会关闭(有时它们中的一些会关闭)。 所以问题是:这种行为正常吗? DAO子类的使用示例:

  • 我正在为此苦苦挣扎 - 我已经阅读了很多关于它的内容,但我仍然看不到我哪里出了问题。 我已经安装了MySQLWorkBench,连接到我的RDS的测试失败了。我已经在端口3306上测试了使用telnet到我的endpoint,它们也无法连接。 我已经在 Amazon VPC 中创建了经典的公有/私有子网,其中包括一个 DBServerSG 安全组,该安全组当前设置为允许所有入站流量并允许所有出站流

  • 在 Apache HttpClient 4.3 版本上配置连接空闲超时的最短方法是什么? 我看了文档,什么也找不到。我的目标是将开放连接减少到最小的服务器峰值。 例如,在Jetty客户端8. x中,您可以设置httpClient.setIdleTimeout:http://download.eclipse.org/jetty/stable-8/apidocs/org/eclipse/jetty/c

  • 问题内容: 我看到许多连接处于打开状态,并且很长一段时间(例如5分钟)保持空闲状态。 有什么解决方案可以在不重新启动mysql服务的情况下从服务器终止/关闭它? 我正在维护旧的PHP系统,无法关闭为执行查询而建立的连接。 我应该将my.cnf文件中的超时值减少为默认的8小时吗? 问题答案: 手动清理: 您可以杀死该进程ID。 但: php应用程序可能会报告错误(或网络服务器,请检查错误日志) 不要