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

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


当前回答

使用命令行选项net_read_timeout / wait_timeout和一个合适的值(以秒为单位)启动DB服务器,例如:——net_read_timeout=100。

参考资料见这里和这里。

其他回答

检查有关

OOM on /var/log/messages ,
modify innodb_buffer_pool_size value ; when load data , use 50% of os mem ; 

希望这能有所帮助

要遵循并确保三件事:

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

答案:

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

我也遇到了同样的问题——但对我来说,解决方案是一个拥有过于严格权限的DB用户。 我必须允许mysql表上的执行能力。在允许之后,我再也没有掉接了

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

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

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

SET @@local.net_read_timeout=360;

警告:当您在远程连接中应用它时,以下将不起作用:

SET @@global.net_read_timeout=360;

编辑:360是秒数