错误代码:2013.在查询过程中丢失与MySQL服务器的连接

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

有没有增加超时值?

新版本的MySQL WorkBench可以select更改特定的超时。

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

将值更改为6000。

此外,取消选中限制行,因为在每次我想要search整个数据集时都会增加一个限制。

使用comandline选项net_read_timeout / wait_timeout和合适的值(以秒为单位)启动数据库服务器 – 例如:– --net_read_timeout=100

参考见这里和这里 。

如果您的查询具有blob数据,则可以通过应用此答案中提出的my.ini更改来解决此问题 :

 [mysqld] max_allowed_packet=16M 

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

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

对于WAMP用户:您可以在[wampmysqld]部分find该标志。

将以下内容添加到/ 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 
 SET @@local.net_read_timeout=360; 

警告:以远程连接方式应用以下设置时不起作用:

 SET @@global.net_read_timeout=360; 

你应该将mysqlconfiguration文件中的'interactive_timeout'和'wait_timeout'属性设置为你需要的值。

只需执行MySQL升级,将重新构buildinnoDB引擎,同时重buildMySQL正常运行所需的许多表,如performance_schemainformation_schema等。

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

 sudo mysql_upgrade -u root -p 

谢谢!它的工作。 但随着mysqldb更新configuration已成为:

max_allowed_pa​​cket的

net_write_timeout

net_read_timeout

MySQL文档

请尝试在编辑→首选项→SQL查询中取消选中限制行

因为您应该将mysqlconfiguration文件中的'interactive_timeout'和'wait_timeout'属性设置为您需要的值。

我知道它的旧,但在Mac上

 1. Control-click your connection and choose Connection Properties. 2. Under Advanced tab, set the Socket Timeout (sec) to a larger value. 

如果在恢复大型转储文件的过程中遇到此问题,可以排除与networking有关的问题(例如,在本地主机上执行),那么我的解决scheme可能会有所帮助。

我的mysqldump至less持有一个太大的INSERT,无法进行计算。 你可以通过inputshow variables like "net_buffer_length";来查看这个variablesshow variables like "net_buffer_length"; 在你的mysql-cli里面。 你有三种可能性:

  • 增加mysql内部的net_buffer_length – >这将需要服务器重启
  • 使用--skip-extended-insert创build转储,每插入一行 – >虽然这些转储更好读,但不适用于大于1GB的转储,因为它往往非常慢
  • 使用扩展插入创build转储(这是默认值),但限制net-buffer_length例如--net-buffer_length NR_OF_BYTES其中NR_OF_BYTES小于服务器的net_buffer_length – >我认为这是最好的解决scheme,尽pipe速度较慢,不需要重新启动服务器。

我使用了下面的mysqldump命令: mysqldump --skip-comments --set-charset --default-character-set=utf8 --single-transaction --net-buffer_length 4096 DBX > dumpfile

这个错误信息有三个可能的原因

  1. 通常表示networking连接有问题,如果频繁出现此错误,则应检查networking状况
  2. 有时,当“数据查询”forms发生时,数百万行作为一个或多个查询的一部分被发送。
  3. 更less见的情况是,当客户端尝试初始连接到服务器时,可能会发生这种情况

更多详情请阅读>>

原因2:

 SET GLOBAL interactive_timeout=60; 

从默认的30秒到60秒或更长

原因3:

 SET GLOBAL connect_timeout=60; 

在编辑 – >首选项 – > SQL编辑器 – > MySQL会话中更改“读取超时”时间

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

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

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

希望这会有所帮助。

我面临同样的问题。 我相信当你有更大的表的外键时(这需要时间)。

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

然后创build表后,我使用ALTER TABLE查询添加外键约束。

希望这会帮助别人。

如果所有其他解决scheme在这里失败 – 请检查您的系统日志(/ var / log / syslog或类似)以查看您的服务器在查询过程中是否内存不足。

如果innodb_buffer_pool_size设置得太接近没有configuration交换文件的物理内存,就有这个问题。 MySQLbuild议在数据库特定的服务器上设置innodb_buffer_pool_size,最大物理内存大约为80%,设置为90%左右,内核正在查杀mysql进程。 把innodb_buffer_pool_size移回到80%左右,解决了这个问题。

这发生在我身上,因为我的innodb_buffer_pool_size被设置为大于服务器上可用的RAM大小。 事情因为这个而中断,并且发出这个错误。 解决方法是使用正确的innodb_buffer_pool_size设置更新my.cnf。

去:

编辑 – >首选项 – > SQL编辑器

在那里,你可以在“MySQL Session”组中看到三个字段,现在你可以设置新的连接间隔(以秒为单位)。

原来我们的防火墙规则阻止了我与MYSQL的连接。 在解除防火墙策略以允许连接后,我能够成功导入模式。

我有同样的问题 – 但对我来说,解决scheme是一个数据库用户权限太严格。 我不得不允许mysql表上的Execute能力。 在允许的情况下,我再也没有掉线

检查索引是否在第一位。

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

检查一下

 OOM on /var/log/messages , modify innodb_buffer_pool_size value ; when load data , use 50% of os mem ; 

希望这可以帮助

这通常意味着你有“与当前版本的MySQL服务器不兼容”,请参阅mysql_upgrade。 我遇到了同样的问题,只需运行:

mysql_upgrade –password文档指出,“每次升级MySQL时都应该执行mysql_upgrade”。