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

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


当前回答

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

其他回答

如果你的查询有blob数据,这个问题可以通过应用my.ini更改来修复,就像在这个答案中提出的那样:

[mysqld]
max_allowed_packet=16M

默认情况下,这将是1M(允许的最大值是1024M)。如果提供的值不是1024K的倍数,它将自动舍入到1024K的最接近倍数。

虽然引用的线程是关于MySQL错误2006,设置max_allowed_packet从1M到16M确实修复了2013年的错误,当我运行一个长查询时出现。

对于WAMP用户:您将在[wampmysqld]部分中找到该标志。

要遵循并确保三件事:

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

答案:

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

如果您正在使用SQL工作台,您可以尝试使用索引,通过添加索引到您的表,要添加索引,单击扳手(扳手)符号在表上,它应该打开表的设置,下面,单击索引视图,键入索引名称并设置类型为索引,在索引列中,选择表中的主列。

对其他表上的其他主键执行相同的步骤。

使用MySql Server 8.0.28社区版,在我的模式中创建了100多个表。MySql服务器不能正常工作,多次崩溃。我发现了问题和解决方案。

我写了“select count(*) from table1..”Table100”查询并在.sql文件中运行。

问题1:MySql服务器设置utf8mb4和我的表创建utf8。

解决方案1:必须设置表和列,或者使用utf8mb4重新创建。

问题2:需要重新配置back_log参数。

解决方案2:set back_log=50+(coonectioncount/5)

问题3:wait_timeout参数需要重新配置。

解决方案3:您必须将其设置为180+(您可以尝试较大的值)

这个行动解决了我的问题。

在“编辑->首选项->SQL编辑器->MySQL会话”中修改“读取超时”时间