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

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


当前回答

尝试使用LIMIT。

跟我来

最初,查询是

SELECT * FROM TABLE1;

这是错误代码:2013。在查询MySQL服务器时失去连接

解决方案

使用限额后

SELECT * FROM TABLE1 LIMIT 10;

它工作。当再次尝试查询w/o LIMIT时,也可以工作。

注意:如果这对你有效,并且你知道为什么它有效,请评论。

你好& # 39;

其他回答

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

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

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

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

希望这能帮助到一些人。

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

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

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

对于那些使用SSH连接到MySQL数据库的人来说,这里似乎缺少一个答案。你需要检查两个地方,而不是其他答案建议的1:

工作台编辑→首选项→SQL编辑器→DBMS

工作台编辑→首选项→SSH→超时

我的默认SSH超时设置得很低,导致了一些(但显然不是全部)超时问题。之后,不要忘记重新启动MySQL工作台!

最后,你可以联系你的数据库管理员,让他们通过my.conf + mysql restart来增加mysql自身的wait_timeout和interactive_timeout属性,如果重启mysql不是一个选项,也可以做一个全局设置。

希望这能有所帮助!

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