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

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


当前回答

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

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

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

希望这能帮助到一些人。

其他回答

在/etc/mysql/cnf文件中增加如下内容:

innodb_buffer_pool_size = 64M

例子:

key_buffer              = 16M
max_allowed_packet      = 16M
thread_stack            = 192K
thread_cache_size       = 8
innodb_buffer_pool_size = 64M

我在加载.csv文件时遇到了同样的问题。 将文件转换为.sql。

使用下面的命令,我设法解决这个问题。

mysql -u <user> -p -D <DB name> < file.sql

希望这能有所帮助。

根据我所理解的,这个错误是由于读取超时引起的,最大允许的包默认值是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。

新版本的MySQL WorkBench有一个选项可以更改特定的超时时间。

对我来说,它是在编辑→首选项→SQL编辑器→DBMS连接读取超时时间(秒):600

将值更改为6000。

此外,不勾选限制行,因为每次我想搜索整个数据集时都要设置一个限制,这会让人感到厌烦。

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

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