客户端中MySQL LOAD DATA LOCAL INFILE的差异

时间:2019-05-23 12:18:18

标签: mysql mysql-workbench sqlyog

我正在尝试运行此查询

LOAD DATA LOCAL INFILE "C:/myfile.txt"
 IGNORE INTO TABLE mydb.mytable
 FIELDS TERMINATED BY ';'
 OPTIONALLY ENCLOSED BY '"'
 LINES TERMINATED BY '\r\n'

如果我在MySQL Workbench(v8.0.16)中运行它,则会收到错误消息

错误代码:1148。此MySQL版本不允许使用已使用的命令

但是,如果我在SQLYog(Professional v12.09)中运行它,效果很好。

我正在同一台计算机上,同一用户,同一服务器上运行同一数据库上运行这两位代码。

该服务器的local_infile = 1

据我所知,这些查询的唯一区别是所使用的SQL Client。

我的假设是,默认情况下两者之间的连接字符串/设置是不同的,但是我找不到关于此的任何文档。

为什么会这样,我该如何解决?

谢谢

1 个答案:

答案 0 :(得分:0)

在Linux中,您必须以命令行方式启动mysql客户端。

mysql -u root -ppassword --local-infile=1

您还应该在配置文件中设置local_infile = 1