我在OS X 10.9.5上使用MySQL Workbench 6.3管理多个云数据库(托管在Rackspace上),我遇到以下问题:
当不活动5分钟时,会发生以下问题:
所以基本上连接已经消失了。
这真的很烦人,因为它只在5分钟不活动后发生。因此,我需要关闭连接并每次重新打开它。
我也试过这个:MySQL Workbench: How to keep the connection alive,它没有改变任何东西。 在我的Workbench Preferences选项卡中,我有以下设置:
请注意,此问题在5分钟不活动后正好发生!如果我在4分钟59分钟的时间间隔内运行两个查询,则效果非常好。 我的同事在他们的Workbench上连接到同一个数据库也没有这个问题。
有人有解决方案吗?
答案 0 :(得分:24)
转到编辑 - >偏好 - > 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(例如250)
这意味着"每250秒发送一次保持活动请求"单击“确定”。
然后退出MySQL Workbench并重新启动它以使更改生效。
如果您使用标准TCP / IP over SSH连接方法,它也可以帮助配置ssh ServerAliveInterval。
答案 1 :(得分:14)
在6.0以上的MySQL Workbench版本中存在此错误(此时:6.1,6.2和6.3有错误)。
降级到MySQL Workbench 6.0.x似乎是解决此问题的唯一方法。
下载MySQL Workbench 6.0.x:http://dev.mysql.com/downloads/workbench/6.0.html
答案 2 :(得分:2)
FWIW:按照Kosh的建议,我更改了如下设置,似乎已经消除了在Ubuntu 16上运行的WB 6.3的问题:
DBMS connection keep-alive interval (in seconds): 60
DBMS connection read time out (in seconds): 60
DBMS connection time out (in seconds): 30
这可能有点矫枉过正,但它确实有效。
答案 3 :(得分:1)
它通过在Windows Azure上托管的Ubuntu 14.04上将tcp_keepalive_time设置为120秒来解决我的问题
默认情况下,Azure负载均衡器上的TCP keepalive为240秒,如果Azure系统上的TCP keepalive大于此值,则可能导致其静默删除连接。您应该将tcp_keepalive_time设置为120以改善此问题。
7200(默认为2小时)
2.设定值从2小时到120秒。
net.ipv4.tcp_keepalive_time = 120
120
4.设置sysctl文件中的值,即使重启后也保持该值。
按i(插入文件) net.ipv4.tcp_keepalive_time = 120(在文件底部添加此行) :wq(保存并退出)
答案 4 :(得分:0)
Kosh Very's Answer对我不起作用所以我找到了另一种解决方案:
更改
my.ini
文件中的max_allowed_packet。 (C:\ ProgramData \ MySQL \ MySQL Server 5.6)max_allowed_packet的= 16M
现在完成后重启MySQL服务。
答案 5 :(得分:0)
Kosh非常是正确的答案。对于那些无法让它工作的人来说,这是另一个解决方案:
我需要更改一个巨大的表(删除或添加列等),是通过终端运行查询:
连接:mysql -u myusername -p
您将被要求输入密码
ALTER TABLE mydb.mytable DROP COLUMN mycol;
答案 6 :(得分:0)
这让我精神振作了好几个月。我的连接是Hostgator服务器。我连接后可以在连接后编辑表格大约10秒左右,然后我会做一个表格提交,表格会改为" Read Only"使用鼠标悬停消息,"无法确定唯一的行标识符(MySQL服务器已消失)或"(在查询期间丢失与MySQL服务器的连接)。
根据其他建议,解决方案是减少保持活动设置。在我的情况下,它必须降到10秒(显然,Hostgator如果相当吝啬他们的带宽!)
首先我尝试减少SSH KeepAlive
(在首选项/其他/超时下),但这不起作用。
诀窍是减少DBMS connection keep-alive interval
(在首选项/ SQL编辑器/ MySQL会话下)。我不得不把它一直降到10秒,直到连接保持稳定。你的主人可能会有所不同。
最后,不再需要“全部刷新”,等待,做点什么,冲洗并重复。