我正在尝试将文本文件加载到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,并且可以运行SELECT
,UPDATE
,INSERT
等。命令没问题。
我还可以使用ODBC连接从Windows机器上毫无问题地运行LOAD DATA LOCAL INFILE
命令,因此我知道问题不在服务器端。
我尝试对my.cnf文件进行了几次修改都没有成功,包括此处的所有建议:
ERROR 1148: The used command is not allowed with this MySQL version
答案 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
成功。