使用MySQL终端将500mb csv文件导入数据库

时间:2014-09-27 13:14:22

标签: mysql shell csv import terminal

我正在尝试使用mysql终端将csv文件导入mysql数据库,似乎没有任何工作我得到错误1064或者在我按Enter后没有任何反应。

到目前为止,我已经尝试过:

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 个答案:

答案 0 :(得分:0)

LOAD DATA语句本身的语法看起来正确......

如果MySQL服务器安装在Windows机器上,并且指定的文件存在且在服务器上可读,则它看起来很合适。 (LOCAL之前没有INFILE关键字,因此说文件位于服务器计算机上,而不是客户端计算机上。)

你展示的第一件事就是尝试过,我认为LOAD DATA语句中的双引号字符实际上是终止了字符串,也就是说,它与双重字符串“匹配”在LOAD DATA之前引用。


您报告您收到1064错误的事实使您看起来可以连接到MySQL服务器。

我用于在服务器计算机上运行mysql命令行客户端的表单:

mysql -u user -ppassword database

(请注意,-p和密码之间没有空格。)

我有点困惑,MySQL服务器是否实际在Windows机器上运行,如果你在CMD.EXE窗口中运行......我没有提供足够的信息来确定它。