MySQL Workbench:如何保持连接活动状态

234

错误代码: 2013。在查询期间丢失与MySQL服务器的连接

我正在使用MySQL Workbench。 我正在运行一批插入,总共约1000行(例如INSERT INTO mytable SELECT * FROM mysource1; INSERT INTO mytable SELECT * FROM mysource2;...mysource3...mysource4 乘以1000次)。 每个批处理需要相当长的时间,其中一些需要超过600秒。

如何配置工作台才能在过夜时继续工作,而不会停止并且不会失去连接?

9个回答

484

现在从不可用的互联网档案中:

转到“编辑” -> “首选项” -> “SQL编辑器”,并将此参数设置为更高的值:DBMS连接读取超时(以秒为单位)。例如:86400。

关闭并重新打开MySQL Workbench。终止您先前可能正在运行的查询,并再次运行查询。


6
在 Mac OS 上,所有版本的 MySQL Workbench 在 6.0.x 之后存在一个 bug:https://dev59.com/questions/5FwZ5IYBdhLWcg3wIdR7#37890150 - lepix
11
这对我起作用了,但必须重新启动编辑器才能生效。 - cucu8
@lepix 这个 bug 修复了吗? - posfan12
5
更改值后需要重新启动编辑器才能生效。 - Phil
2
您可以将其设置为0以跳过读取超时。 - Ollie
最近版本的MySQL Workbench无需重新启动。 至少在8.0.26版本中,不需要重启,我认为早期的许多版本也是如此。 - Griffin

50
如果您使用“标准TCP/IP over SSH”类型的连接,在“配置”->“其他”下有一个“SSH KeepAlive”字段。我花了相当长的时间才找到它 :(

你为什么要重复一个答案? - Jan Doggen
22
我看不到其他回答指出在MySQL Workbench中可以更改“SSH KeepAlive”的位置,该选项默认为0 => 禁用。我只看到一个回答建议更改服务器的ssh设置... - Ljubitel
感谢您指出这一点,因为此处的设置会覆盖客户端配置文件 ~/.ssh/config 和 /etc/ssh/ssh_config。这对于移动宽带来说是绝对必要的。 - Rodney
请问您能否在您的回答中添加一个使用的值的示例吗?您是否推荐使用类似于“1800”秒的值? - A.L
1
@A.L 这取决于你的上下文环境。在我的情况下,SSH连接将在3分钟(180秒)后过期,因此我将我的SSH KeepAlive设置为30秒。 - Ljubitel
谢谢您指出这一点,对我来说,在Mysql Workbench 6.3中我没有看到“DBMS连接读取超时”。 - JohnnyHuo

25
我曾遇到类似问题,CREATE FULLTEXT 在 30 秒后超时:

error

在“编辑”-“首选项”-“SQL 编辑器”下将 DBMS 连接读取超时时间间隔设置为 0 可以解决该问题:

fix error

另外,我无需重启 mysql workbench 即可生效。

18
在5.2.47版本(至少在Mac上),相关首选项的位置如下:
MySQL Workbench > Preferences > SQL Editor 然后你会看到两个选项:
DBMS连接保持活动间隔(以秒为单位): DBMS连接读取超时(以秒为单位):
后者是你想要增加限制的地方,从600增加到更高的值。

我将我的DBMS连接读取超时设置为86400秒,但在运行某些查询约7200秒后,仍然收到2013错误。有人知道这方面的情况吗? - IndexOutOfDevelopersException
更改后需要重新启动Workbench。 - Nuryagdy Mustapayev

12
在尝试通过命令行和本地服务器设置来设置SSH超时后,在我的情况下,@Ljubitel的解决方案为我解决了这个问题。需要注意的一点是,在Workbench 6.2中,该设置现在位于“高级”选项中。 enter image description here (图片来源:https://istack.dev59.com/hshuQ.webp

2
在6.3版本中,Advanced已更名为Others。 - Richard

2

我遇到了2013错误,尝试了上述所有偏好设置更改都无法解决问题。我重启了mysql服务,问题就消失了。


2

如果您正在使用“标准TCP/IP over SSH”类型的连接,可能是ssh服务器超时了,此时您需要在服务器上编辑/etc/ssh/sshd_config中与TCPKeepAlive相关的设置。


2

好的-这个问题一直困扰着我-在Ubuntu Linux上的版本6.3.6。以上的解决方案都没有对我起作用。以前连接到本地MySQL服务器总是很好的,但连接到远程服务器总是超时-大约60秒后,有时更短,有时更长。

最终对我起作用的是将Workbench升级到6.3.9-不再出现断开连接的情况。


1

在 MySQL Workbench 5.7 中,编辑 -> 首选项 -> SSH -> SSH 连接超时(用于 SSH 数据库连接)

在此输入图像描述

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接