LOAD DATA LOCAL INFILE-此MySQL版本不允许使用命令

时间:2018-12-11 23:24:54

标签: mysql amazon-web-services text-files ubuntu-16.04

我正在尝试将文本文件加载到MySQL表中。 我收到的错误是:

  

HY000 1148 [MySQL] [ODBC 8.0(w)驱动程序] [mysqld-5.6.39]使用的命令   此MySQL版本不允许使用

我的操作系统是Ubuntu 16.04.4 LTS,客户端MySQL版本是5.7.24。 MySQL数据库服务器位于运行MySQL 5.6.39的AWS RDS实例上

我从命令行使用的命令是:

LOAD DATA LOCAL INFILE 'abc.txt' INTO TABLE tblname FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\r\n';

我还尝试使用ODBC连接运行命令(如从错误消息中可以看到的)。从命令行运行ODBC时,我收到相同的错误消息,减去有关ODBC的信息。

我可以使用命令行和ODBC连接成功连接到DB,并且可以运行SELECTUPDATEINSERT等。命令没问题。

我还可以使用ODBC连接从Windows机器上毫无问题地运行LOAD DATA LOCAL INFILE命令,因此我知道问题不在服务器端。

我尝试对my.cnf文件进行了几次修改都没有成功,包括此处的所有建议:

ERROR 1148: The used command is not allowed with this MySQL version

1 个答案:

答案 0 :(得分:1)

这个问题原来是ODBC连接器问题。

我使用的MySQL ODBC连接器的版本是8.0.11,它将覆盖local-infile参数并将其设置为零。 在此版本的连接器中,(据我所知)该参数不可编辑。

从8.0.14版本开始,用户可以将以下行添加到odbc.ini文件:

ENABLE_LOCAL_INFILE=1

https://dev.mysql.com/doc/connector-odbc/en/connector-odbc-configuration-connection-parameters.html

升级到新的连接器并更新odbc.ini之后,通过ODBC连接时LOAD DATA LOCAL INFILE成功。