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

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


当前回答

如果这里所有其他解决方案都失败了,请检查您的syslog (/var/log/syslog或类似),看看您的服务器在查询期间是否内存不足。

当innodb_buffer_pool_size设置得太接近物理内存而没有配置交换文件时出现此问题。MySQL建议将innodb_buffer_pool_size设置为物理内存的80%左右,我将其设置为90%左右,内核正在杀死MySQL进程。将innodb_buffer_pool_size移回80%左右,解决了这个问题。

其他回答

在“编辑->首选项->SQL编辑器->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

如果这里所有其他解决方案都失败了,请检查您的syslog (/var/log/syslog或类似),看看您的服务器在查询期间是否内存不足。

当innodb_buffer_pool_size设置得太接近物理内存而没有配置交换文件时出现此问题。MySQL建议将innodb_buffer_pool_size设置为物理内存的80%左右,我将其设置为90%左右,内核正在杀死MySQL进程。将innodb_buffer_pool_size移回80%左右,解决了这个问题。

这发生在我身上,因为我的innodb_buffer_pool_size被设置为大于服务器上可用的RAM大小。事情因此被中断,然后它发出这个错误。修复方法是用正确的innodb_buffer_pool_size设置更新my.cnf。

SET @@local.net_read_timeout=360;

警告:当您在远程连接中应用它时,以下将不起作用:

SET @@global.net_read_timeout=360;

编辑:360是秒数