MySQL Workbench 在空闲时断开连接

标签 mysql database timeout mysql-workbench connection-timeout

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

当5分钟不活动时,会出现以下问题:

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

所以基本上连接已经消失了。

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

我也试过这个:MySQL Workbench: How to keep the connection alive ,这并没有改变任何东西。 在我的 Workbench Preferences 选项卡中,我有以下设置:

  • DBMS 连接保持事件间隔(以秒为单位):600
  • DBMS 连接读取超时(以秒为单位):600
  • DBMS 连接超时(以秒为单位):60

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

有人对此有解决方案吗?

最佳答案

转到编辑 -> 首选项 -> SQL 编辑器,你会看到:

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

DBMS 连接保持事件间隔表示 Workbench 向服务器发送保持事件请求以保持连接事件的频率。

由于 5 分钟 == 300 秒, 设置 DBMS 连接保持事件间隔 < 300 (e.g. 250)

这意味着“每 250 秒发送一次保持事件请求”。点击确定。

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

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

关于MySQL Workbench 在空闲时断开连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31811517/

相关文章:

php - Laravel:根据经纬度从数据库中获取结果

mySQL - 放入列的正确方法(UNION 或其他?)

javascript - Angular JS 在 $scope 中执行函数 $timer 收到 TypeError

php - MATCH AGAINST SQL 注入(inject)预防和 wpdb->prepare

php - PBKDF2 推荐的 key 大小?

mysql - 在MySQL中,这是什么意思?/*!40100 DEFAULT CHARACTER SET latin1 */

database - 完全菜鸟在小型私立学前类/幼儿园为学生和教师创建安全的网络数据库?

php - Symfony/Doctrine : fetching data as object

java - 如何在 Java 中创建函数 "timeoutable"?