2014-09-27 117 views
0

我試圖導入一個csv文件到mysql數據庫使用mysql終端,似乎沒有任何工作我得到錯誤1064或沒有任何反應後,我輸入。使用MySQL終端導入500mb csv文件到數據庫中

到目前爲止,我曾嘗試:

mysql -uusername -ppassword dbname -e "LOAD DATA INFILE 'C:/Users/Administrator/Downloads/file.csv'  INTO TABLE test FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\n' (field1, field2, field3)"; 

它什麼都不做,如果我打不進入;最後,並與;我得到錯誤1064不正確的語法。

我也曾嘗試:

mysql -u username -p password -h localhost dbname 

use dbname 

LOAD DATA INFILE 'C:/Users/Administrator/Downloads/file.csv' INTO TABLE test FIELDS TERMINATED BY ',' ENCLOSED BY '"' (field1, field2, field3); 

這是正確的?


我使用下面的語句,這是我收到錯誤消息:

mysql->mysql -u username -ppassword 

->use database 

->LOAD DATA LOCAL INFILE 'C:/datafeed.csv' 
->INTO TABLE table_name 
->FIELDS TERMINATED BY ',' 
->LINES TERMINATED BY '\n' 
->(field1, field2, field3); 

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'mysql -u username -ppassword use database LOAD DATA LOCAL INFILE 'C:/datafe' at line 1 
+1

許多對數據加載問題進行故障排除的人使用他們文件的小部分進行測試。一旦微小的子集加載正確,他們繼續加載整個文件。 – 2014-09-27 15:47:58

回答

0

的LOAD DATA語句本身看起來是正確的語法...

它看起來如果MySQL服務器安裝在Windows機器上,並且指定的文件存在並且可以在服務器上讀取,那麼適合。 (有INFILE之前沒有LOCAL關鍵字,所以這是說,該文件是服務器機器,而不是在客戶機上。)

告訴你,你已經嘗試的第一件事情,我覺得LOAD DATA雙引號字符語句實際上是終止字符串,也就是說,它與LOAD DATA之前的雙引號「匹配」。


事實上,你報告說你得到一個1064錯誤,使得它顯示你能夠連接到MySQL服務器。

我使用的服務器計算機上運行mysql命令行客戶端的形式:

mysql -u user -ppassword database 

(請注意,有-p和密碼之間沒有空格。)

我有點困惑,MySQL服務器是否真的在Windows機器上運行,以及如果你在CMD.EXE窗口中運行......沒有足夠的信息提供給我來確定。

+0

它是一個Windows服務器,我從bin目錄打開mysql.exe並運行終端中的命令。 – user3312792 2014-09-27 15:45:31

+0

只需在'mysql>'提示符處輸入'LOAD DATA'語句即可。 – spencer7593 2014-09-27 15:51:34

+0

只是使用加載數據語句顯示錯誤「沒有數據庫選擇」,所以我連接到數據庫,然後運行LOAD DATA語句,什麼也沒有發生 – user3312792 2014-09-27 15:57:02