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

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


当前回答

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

[mysqld]
max_allowed_packet=16M

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

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

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

其他回答

我的观察是

当你同时运行MySQL工作台和终端时,在终端中你会做-

设置自动提交= 0;

OR

开始事务;

然后你通常会遇到这类问题。

甚至在那之后

设置自动提交= 1;

OR

提交;

问题依然存在。

您需要同时从终端和MYSQL工作台注销,然后重新登录或重新启动。

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

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

将值更改为6000。

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

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

只需执行一次MySQL升级,将重新构建innoDB引擎,并重新构建MySQL正常运行所需的许多表,如performance_schema, information_schema等。

从你的shell中发出下面的命令:

sudo mysql_upgrade -u root -p

在/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