oct*_*bus 25 mysql csv import load local
我不太确定类似的问题是由于我试图执行以下MySQL程序而关闭的.
mysql -e "load data local infile \
'/tmp/ept_inventory_wasp_export_04292013.csv' into \
table wasp_ept_inv fields terminated by ',' \
lines terminated by '\n' ;"
Run Code Online (Sandbox Code Playgroud)
在bash命令行中获取此错误
ERROR 1148 (42000) at line 1: The used command is not allowed with this MySQL version
我该如何解决这个问题?
我实际上是从Python程序运行此命令,但是在bash命令行中尝试使用它来取消命令.
我已经看到了如何修改my.cnf(local-infile),但如果我能避免它,我不希望全局变化.
这是MySQL版本.
mysql Ver 14.14 Distrib 5.5.31, for debian-linux-gnu (i686) using readline 6.2
oct*_*bus 48
解决方法是修改命令行mysql -e
以传入--local-infile=1
参数,如下所示:
mysql --local-infile=1 -u username -p `
Run Code Online (Sandbox Code Playgroud)
然后LOAD DATA LOCAL INFILE
再次运行该命令.
egg*_*yal 31
为了解决这些问题,我们改变了
LOAD DATA LOCAL
MySQL 3.23.49和MySQL 4.0.2(Windows上4.0.13)的处理方式:
默认情况下,二进制发行版中的所有MySQL客户端和库都使用该
--enable-local-infile
选项进行编译,以便与之前的MySQL 3.23.48兼容.如果您从源构建MySQL但不使用该
--enable-local-infile
选项调用configure,则LOAD DATA LOCAL
除非明确写入调用,否则任何客户端都不能使用它mysql_options(... MYSQL_OPT_LOCAL_INFILE, 0)
.见第20.6.6.49节"mysql_options()
".您可以
LOAD DATA LOCAL
通过使用该选项启动mysqld来禁用服务器端的所有语句--local-infile=0
.对于mysql命令行客户端,
LOAD DATA LOCAL
通过指定--local-infile[=1]
选项启用,或使用该--local-infile=0
选项禁用它.对于mysqlimport,默认情况下本地数据文件加载是关闭的; 使用--local
或-L
选项启用它.在任何情况下,成功使用本地加载操作都需要服务器允许它.如果您
LOAD DATA LOCAL
在Perl脚本或[client]
从选项文件中读取组的其他程序中使用,则可以将该local-infile=1
选项添加到该组.但是,为了避免对不理解的程序造成问题,请local-infile
使用loose-
前缀指定它:[client] loose-local-infile=1如果
LOAD DATA LOCAL
在服务器或客户端中禁用,则尝试发出此类语句的客户端会收到以下错误消息:
ERROR 1148: The used command is not allowed with this MySQL version
local-infile
需要在服务器和客户端上启用.您可以通过添加local-infile = 1
到每个端点my.cnf
(Unix)或my.ini
(Windows)文件中的相应部分来完成此操作.例如,在客户端上:
[client]
local-infile = 1
Run Code Online (Sandbox Code Playgroud)
您还可以通过设置系统变量在服务器上的运行时启用此功能local_infile
:
SET GLOBAL local_infile=1;
Run Code Online (Sandbox Code Playgroud)
但是,您仍需要在客户端上启用它.您可以在运行时通过向命令添加命令行参数来mysql
执行此操作:
mysql --local-infile=1 ...
Run Code Online (Sandbox Code Playgroud)
如果您使用的是Amazon Web Services RDS,则可以通过编辑或创建参数组来配置服务器设置.寻找local_infile
参数.应用更改后,您可能需要重新启动服务器.