I'm not quite sure a similar question to this was closed by I'm trying to execute the following MySQL program.
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' ;"
at the bash command line and get this error
ERROR 1148 (42000) at line 1: The used command is not allowed with this MySQL version
How can I work around this problem?
I am actually running this command from a Python program, but pulled the command out to try fiddling with it at the bash command line.
I've seen how I can modify my.cnf (local-infile), but I do not want that global a change if I can avoid it.
Here's the MySQL version.
mysql Ver 14.14 Distrib 5.5.31, for debian-linux-gnu (i686) using readline 6.2
local-infile
needs to enabled on both the server and the client. You can accomplish this by addinglocal-infile = 1
to the appropriate section in each end'smy.cnf
(Unix) ormy.ini
(Windows) file. For example, on the client:You can also enable this at runtime on the server by setting the system variable
local_infile
:However, you still need to enable it on the client. You can do this at runtime by adding a command-line parameter to the
mysql
command:If you're using Amazon Web Services RDS, you can configure the server setting by editing or creating a Parameter Group. Look for the
local_infile
parameter. You may need to restart your server after applying the changes.The workaround for this is to modify the command line
mysql -e
to pass in the--local-infile=1
argument like this:Then run the
LOAD DATA LOCAL INFILE
command again.My guess is that your MySQL server does not have
LOAD DATA LOCAL
enabled. See this section of MySQL documentation:Here is link to the page I got this from:
http://dev.mysql.com/doc/refman/5.5/en/load-data-local.html
As documented under Security Issues with
LOAD DATA LOCAL
: