2

是否可以在 Ubuntu 中使用 shell 脚本将 CSV 文件插入 MySQL?

这是我尝试过的:

mysql -uroot -proot mysfdb < /home/sf/data.csv

但我得到了一个错误

ERROR 1064 (42000) at line 1: 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

以下是 CSV 文件中的示例内容:

showinventory_SST312V8N4615041313_1366009574txt_,800-200002.A0,00007985

有任何想法吗?

4

4 回答 4

8

Maksym Polshcha 的回答是正确的,但只是遗漏了几件事。显然,由于它是本地文件,我必须在 mysql 命令中将其声明为本地文件。最后的命令应该是这样的:

 mysql -uroot -proot --local_infile=1 3parsfdb -e "LOAD DATA LOCAL INFILE '/logfiles/Bat_res.csv' INTO TABLE Bat_res FIELDS TERMINATED BY ','"

我还确保/logfiles目录和目录Bat_res.csv是世界可读的。

谢谢你的好答案。

于 2013-04-16T01:24:48.630 回答
4

尝试这个:

mysql -uroot -proot mysfdb -e "LOAD DATA INFILE '/home/sf/data.csv' INTO TABLE mytable"

其中mytable是您的数据表。如果您的 CSV 文件中有非标准的字段/行分隔符,请使用FIELDS TERMINATED BYLINES TERMINATED BY

http://dev.mysql.com/doc/refman/5.1/en/load-data.html

于 2013-04-15T08:59:49.160 回答
1

我用了这个,它奏效了。

Login in mysql using `mysql -uroot -ppassword --local-infile`

然后在终端:

LOAD DATA LOCAL INFILE '.csv path' INTO TABLE table_name FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n';
于 2014-09-06T06:33:37.080 回答
0

打开 Ubuntu 终端并运行以下命令

# mysql -u admin -p --local_infile=1 DATABASE_NAME -e "LOAD DATA LOCAL INFILE 'students.csv' INTO TABLE TABLE_NAME FIELDS TERMINATED BY ',' enclosed by '\"'"

这里,

  • DATABASE_NAME = 您的数据库的名称
  • student.csv = CSV 文件目录,您要上传到数据库中
  • TABLE_NAME = 您要在哪个表中上传数据
  • admin = 数据库用户名

运行此命令后,系统要求输入管理员用户的密码。

写下密码并享受。

于 2017-08-08T08:28:02.747 回答