我得到了错误代码:2013。当我试图使用MySQL工作台向表添加索引时,在查询错误期间失去了与MySQL服务器的连接。 我还注意到,每当我运行长查询时,它就会出现。
是否有增加超时值的方法?
我得到了错误代码:2013。当我试图使用MySQL工作台向表添加索引时,在查询错误期间失去了与MySQL服务器的连接。 我还注意到,每当我运行长查询时,它就会出现。
是否有增加超时值的方法?
当前回答
此错误消息有三个可能的原因
通常这表明网络连接有问题,如果经常发生这种错误,您应该检查网络的状况 有时,当数百万行作为一个或多个查询的一部分发送时,就会出现“during query”形式。 更罕见的情况是,当客户端尝试到服务器的初始连接时,也会发生这种情况
更多细节请阅读>>
原因2:
SET GLOBAL interactive_timeout=60;
从默认的30秒到60秒或更长时间
原因3:
SET GLOBAL connect_timeout=60;
其他回答
要遵循并确保三件事:
多次查询是否显示失去连接? 在MySQL中如何使用set query ? 如何同时删除+更新查询?
答案:
总是尝试删除定义器,因为MySQL创建了自己的定义器,如果涉及多个表进行更新,尝试进行单个查询,因为有时多个查询显示丢失连接 总是SET值在顶部,但如果它的条件不涉及SET值,则在DELETE之后。 如果这两个操作在不同的表上执行,先使用删除,再使用更新
你应该在mysql配置文件中设置'interactive_timeout'和'wait_timeout'属性为你需要的值。
我在运行一个存储过程时遇到了这个问题——它正在数据库中的一个表中创建大量的行。 在超过30秒后,我就看到了这个错误。
我尝试了其他答案中的所有建议。我确信其中有一些帮助,然而,真正让我有用的是从Workbench切换到SequelPro。
我猜这是我在Workbench中没有发现的某个客户端连接。 也许这也能帮助到其他人?
新版本的MySQL WorkBench有一个选项可以更改特定的超时时间。
对我来说,它是在编辑→首选项→SQL编辑器→DBMS连接读取超时时间(秒):600
将值更改为6000。
此外,不勾选限制行,因为每次我想搜索整个数据集时都要设置一个限制,这会让人感到厌烦。
SET @@local.net_read_timeout=360;
警告:当您在远程连接中应用它时,以下将不起作用:
SET @@global.net_read_timeout=360;
编辑:360是秒数