2017-10-12 293 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 ... 
相關問題