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

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


当前回答

有时候你的SQL-Server会陷入死锁,我已经遇到过这个问题100次了。你可以重启你的电脑/笔记本电脑来重启服务器(简单的方法),或者你可以去任务管理器>services> your - server - name(对我来说,它是MySQL785之类的)。然后右键单击> restart。 重试执行查询。

其他回答

首先检查索引是否到位。

SELECT *
FROM INFORMATION_SCHEMA.STATISTICS
WHERE TABLE_SCHEMA = '<schema>'

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

参考资料见这里和这里。

我也遇到过同样的问题。我相信当您有较大表的外键时(这需要时间)就会发生这种情况。

我尝试运行create table语句再次没有外键声明,并发现它工作。

然后在创建表之后,我使用ALTER table查询添加外键约束。

希望这能帮助到一些人。

根据我所理解的,这个错误是由于读取超时引起的,最大允许的包默认值是4M。如果你的查询文件超过4Mb,那么你会得到一个错误。这对我很有效

修改读超时时间。要进行更改,请单击工作台编辑器→首选项→SQL编辑器

2. 通过编辑my.ini文件手动更改max_allowed_packet。请到“C:\ProgramData\MySQL\MySQL Server 8.0\my.ini”目录进行编辑。ProgramData文件夹是隐藏的,所以如果你没有看到,那么选择在视图设置中显示隐藏文件。在my.ini文件中设置max_allowed_packet = 16M。 3.重新启动MySQL。如果需要重新启动,请执行win+ R ->服务。重新启动MySQL。

进入工作台编辑→首选项→SQL编辑器→DBMS连接读取超时时间:高达3000。 错误不再发生。