如何更正MySQL加载错误
我不太确定类似的问题是否在我尝试执行以下MySQL程序时解决了如何更正MySQL加载错误,mysql,csv,import,load,local,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' ;" 在bash命令行中,获取此错误 第1行出现错误1148(42000):此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' ;"
在bash命令行中,获取此错误
第1行出现错误1148(42000):此MySQL版本不允许使用所用命令
我如何解决这个问题
我实际上是从一个Python程序中运行这个命令,但是在bash命令行中拉出该命令来尝试处理它
我已经看到了如何修改my.cnf(local infle),但如果可以避免的话,我不希望这种全局更改
这是MySQL版本
mysql版本14.14发行版5.5.31,适用于使用readline 6.2的debian linux gnu(i686),如下所述:
为了解决这些问题,我们改变了MySQL 3.23.49和MySQL 4.0.2(Windows上为4.0.13)的处理方式:
- 默认情况下,二进制发行版中的所有MySQL客户端和库都使用
选项编译,以与MySQL 3.23.48及之前的版本兼容--enable local infle
- 如果您从源代码构建MySQL,但不使用
选项调用configure,则任何客户端都不能使用该选项,除非它被显式写入调用。看--enable local infle
- 您可以从选项开始禁用服务器端的所有语句
- 对于命令行客户端,通过指定选项启用
,或使用选项禁用它。对于,本地数据文件加载默认为关闭;使用或LOAD DATA LOCAL
选项启用它。在任何情况下,成功使用本地加载操作都需要服务器允许-L
- 如果在从选项文件读取
组的Perl脚本或其他程序中使用,则可以将[client]
选项添加到该组中。但是,为了防止这对不理解local infle=1
的程序造成问题,请使用local infle
前缀指定它: [client] loose-local-infile=1 [客户] 松散局部填充=1loose-
- 如果在服务器或客户端中禁用,则尝试发出此类语句的客户端将收到以下错误消息:
错误1148:此MySQL版本不允许使用所用命令
我猜您的MySQL服务器没有启用本地加载数据。请参阅MySQL文档的这一部分: 如果在服务器或客户端中禁用了LOAD DATA LOCAL,则尝试发出此类语句的客户端将收到以下错误消息: 错误1148:此MySQL版本不允许使用该命令 以下是我从中获得的页面链接:
解决方法是修改命令行
mysql-e
以传入--local infire=1
参数,如下所示:
mysql --local-infile=1 -u username -p `
然后再次运行
LOAD DATA LOCAL infle
命令 本地加密
需要在服务器和客户端上同时启用。您可以通过将local infle=1
添加到每端的my.cnf
(Unix)或my.ini
(Windows)文件的相应部分来完成此操作。例如,在客户端上:
[client]
local-infile = 1
您还可以通过设置系统变量local\u infle
,在服务器上运行时启用此功能:
SET GLOBAL local_infile=1;
但是,您仍然需要在客户端上启用它。您可以在运行时通过向mysql
命令添加命令行参数来实现这一点:
mysql --local-infile=1 ...
如果您使用的是Amazon Web Services RDS,则可以通过编辑或创建参数组来配置服务器设置。查找
local\u infle
参数。应用更改后,您可能需要重新启动服务器。这对我毫无帮助。我需要一个变通办法。我在my.cnf中添加了本地内嵌,但这并没有改变错误。我使用安装时提供的语句启动MySQL。我没有做什么特别的事。你的答案仍然没有提供解决办法,因为我没有特别禁用任何东西。@octopusgrabbus如果它对你没有任何帮助,那么你为什么接受这个答案??你为什么不接受自己的答案呢?设置local\u infle=1
将在较新的MySQL版本上失败。设置全局本地加密=1
是为我做的。不过这是可行的:mysql-u username-p--local infle db-A