MySQL - 错误2013:在查询期间丢失与MySQL服务器的连接 - Localhost

时间:2017-10-12 00:19:28

标签: mysql mysql-workbench

我刚刚在我的计算机上安装了一个SQL服务器,并将数据存储指向另一个非C驱动器。我通过以下方式创建表后,一直尝试导入Kaggle数据作为测试:

LOAD DATA LOCAL INFILE 'G:\\Extract_large\\user_logs.csv'
INTO TABLE user_logs
fields terminated by ','
enclosed by '"'
lines terminated by '\n'
ignore 1 rows; 

当然,由于数据相当大,并且在每次尝试导入期间,我始终通过Error Code: 2013 Lost connection to MYSQL server during Query失去与服务器的连接。我做了一些搜索,并在stackoverflow中遇到了一些其他类似的线程(不是专门针对localhost),这导致我增加了DBMS Connection参数,特别是我设置:

DBMS connection Keep-alive interval (in seconds): 10,000
DBMS connection read timeout (in seconds): 200
DBMS connection timeout (in seconds): 10,000

这无法解决问题,因此我进一步修改了my.ini信息以设置max_allowed_packet=100000M。一旦我重新启动服务器,这仍然无法正常工作。

最后,我在SQL中尝试了set global max_allowed_packet=500000000000。再次没有成功。我的想法......帮助?

以下是我设法在此主题中找到的其他主题:hereherehere

注意:我使用MySQL 5.7运行Windows 7。错误似乎发生在30.5或1573.6秒(给出或花费几毫秒)。

1 个答案:

答案 0 :(得分:0)

根据https://dev.mysql.com/doc/refman/5.7/en/server-system-variables.html#sysvar_max_allowed_packet

,max_allowed_pa​​cket的最大允许值为1G

我尝试使用MySQL 5.6.31进行测试,将其更改为500G,但忽略了更改,之前的值仍然有效。

另请注意,除了更改服务器端max_allowed_pa​​cket之外,您可能还需要在某些客户端中更改同名选项,特别是mysqlmysqldump。其他命令行客户端使用客户端默认值1GB。

因此,如果您使用LOAD DATA客户端运行mysql,则需要告知客户端使用更大的数据包大小。

mysql --max_allowed_packet=1073741824 ...