我得到了错误代码:2013。当我试图使用MySQL工作台向表添加索引时,在查询错误期间失去了与MySQL服务器的连接。 我还注意到,每当我运行长查询时,它就会出现。

是否有增加超时值的方法?


当前回答

我在运行一个存储过程时遇到了这个问题——它正在数据库中的一个表中创建大量的行。 在超过30秒后,我就看到了这个错误。

我尝试了其他答案中的所有建议。我确信其中有一些帮助,然而,真正让我有用的是从Workbench切换到SequelPro。

我猜这是我在Workbench中没有发现的某个客户端连接。 也许这也能帮助到其他人?

其他回答

对于那些使用SSH连接到MySQL数据库的人来说,这里似乎缺少一个答案。你需要检查两个地方,而不是其他答案建议的1:

工作台编辑→首选项→SQL编辑器→DBMS

工作台编辑→首选项→SSH→超时

我的默认SSH超时设置得很低,导致了一些(但显然不是全部)超时问题。之后,不要忘记重新启动MySQL工作台!

最后,你可以联系你的数据库管理员,让他们通过my.conf + mysql restart来增加mysql自身的wait_timeout和interactive_timeout属性,如果重启mysql不是一个选项,也可以做一个全局设置。

希望这能有所帮助!

要遵循并确保三件事:

多次查询是否显示失去连接? 在MySQL中如何使用set query ? 如何同时删除+更新查询?

答案:

总是尝试删除定义器,因为MySQL创建了自己的定义器,如果涉及多个表进行更新,尝试进行单个查询,因为有时多个查询显示丢失连接 总是SET值在顶部,但如果它的条件不涉及SET值,则在DELETE之后。 如果这两个操作在不同的表上执行,先使用删除,再使用更新

对我来说,以上都没用。然后我尝试停止mysql服务,并再次启动它,神奇地查询开始运行:D。

$ sudo service mysql stop
$ sudo service mysql start

希望这能有所帮助

你应该在mysql配置文件中设置'interactive_timeout'和'wait_timeout'属性为你需要的值。

这通常意味着你有“与当前版本的MySQL服务器不兼容”,参见mysql_upgrade。我也遇到了同样的问题,我不得不跑掉:

mysql_upgrade——密码 文档声明,“mysql_upgrade应该在每次升级MySQL时执行”。