2017-10-12 296 views
0

我刚刚在我的电脑上安装了SQL服务器,并将数据存储指向其他非C驱动器。我一直在试图通过创建表后导入Kaggle数据作为测试:MySQL - 错误2013:在查询过程中丢失与MySQL服务器的连接 - Localhost

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连接到服务器的过程中。我做了一些搜索和计算器跨越了几个其他类似的线程来了(不是专为本地主机),这导致我增加DBMS连接参数,特别是我设置:

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秒(可能需要几毫秒)。

+0

我不知道SQL服务器与引用MySQL服务器不同。标签已被编辑。 – WolVes

回答

0

为max_allowed_pa​​cket的最大允许值是根据https://dev.mysql.com/doc/refman/5.7/en/server-system-variables.html#sysvar_max_allowed_packet

1G我试着用MySQL的31年5月6日的测试像你一样将其更改为500G,但这种变化被忽略,且前值仍处于影响。

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

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

mysql --max_allowed_packet=1073741824 ... 
相关问题