【发布时间】:2019-05-13 00:26:36
【问题描述】:
我正在尝试将文本文件加载到 MySQL 表中。 我收到的错误是:
HY000 1148 [MySQL][ODBC 8.0(w) Driver][mysqld-5.6.39]使用的命令 此 MySQL 版本不允许使用
我的操作系统是 Ubuntu 16.04.4 LTS,客户端 MySQL 版本是 5.7.24。 MySQL db 服务器位于运行 MySQL 5.6.39 的 AWS RDS 实例上
我尝试使用 ODBC 运行此命令:
LOAD DATA LOCAL INFILE 'abc.txt' INTO TABLE tblname FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\r\n';
我可以使用命令行和 ODBC 连接成功连接到数据库,并且可以运行 SELECT、UPDATE、INSERT 等。命令没问题。
我也可以在 Windows 机器上运行LOAD DATA LOCAL INFILE 命令,使用 ODBC 连接没有问题,所以我知道问题不在服务器端。
我已尝试对 my.cnf 文件进行多次修改,但均未成功,包括此处的所有建议:
ERROR 1148: The used command is not allowed with this MySQL version
这里:
LOAD DATA LOCAL INFILE gives the error The used command is not allowed with this MySQL version
这两种解决方案都建议在服务器上设置 local-infile=1,但我的服务器已经有该设置。
【问题讨论】:
-
@StephenOstermiller 不,这不是完全相同的问题。原来是我的回答中详述的 ODBC 连接器问题。
-
我不得不承认,我尝试了很多不同的东西,以至于我不记得命令行何时开始工作了。最后,我认为我有两个不同的问题(ODBC 和命令行),我认为它们是相同的。两者都与 local-infile 参数有关,但每个问题都有不同的解决方案。
-
很公平。现在我编辑了这个问题,它是不同的。
-
重读我的原帖后,我意识到我的要求不清楚/不准确。从命令行运行命令不是问题。它始终与 ODBC 相关。我将编辑我的原始帖子。最后,local-infile 参数是罪魁祸首。然而,修复与其他帖子略有不同。
-
你打败了我!!谢谢@StephenOsteriller。