¿Cómo puedo corregir el error de carga de MySQL?

No estoy muy seguro de que una pregunta similar a esta se haya cerrado. Estoy intentando ejecutar el siguiente progtwig 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' ;" 

en la línea de comando bash y obtener este error

ERROR 1148 (42000) at line 1: The used command is not allowed with this MySQL version

¿Cómo puedo solucionar este problema?

En realidad estoy ejecutando este comando desde un progtwig de Python, pero saqué el comando para intentar tocarlo en la línea de comando bash.

He visto cómo puedo modificar my.cnf (local-infile), pero no quiero un cambio global si puedo evitarlo.

Aquí está la versión de MySQL.

mysql Ver 14.14 Distrib 5.5.31, for debian-linux-gnu (i686) using readline 6.2

Como se documenta en Problemas de seguridad con LOAD DATA LOCAL :

Para lidiar con estos problemas, modificamos cómo se maneja LOAD DATA LOCAL desde MySQL 3.23.49 y MySQL 4.0.2 (4.0.13 en Windows):

  • Por defecto, todos los clientes MySQL y bibliotecas en distribuciones binarias se comstackn con la opción --enable-local-infile , para ser compatibles con MySQL 3.23.48 y versiones anteriores.

  • Si --enable-local-infile MySQL desde el origen pero no invoca configure con la opción --enable-local-infile , LOAD DATA LOCAL no puede ser utilizado por ningún cliente a menos que esté escrito explícitamente para invocar mysql_options(... MYSQL_OPT_LOCAL_INFILE, 0) . Ver la Sección 20.6.6.49, ” mysql_options() ” .

  • Puede deshabilitar todas las declaraciones LOAD DATA LOCAL del lado del servidor iniciando mysqld con la --local-infile=0 .

  • Para el cliente de línea de comandos mysql , active LOAD DATA LOCAL especificando la --local-infile[=1] , o desactívela con la --local-infile=0 . Para mysqlimport , la carga del archivo de datos local está desactivada por defecto; habilitarlo con la opción --local o -L . En cualquier caso, el uso exitoso de una operación de carga local requiere que el servidor lo permita.

  • Si usa LOAD DATA LOCAL en scripts Perl u otros progtwigs que leen el grupo [client] desde archivos de opciones, puede agregar la opción local-infile=1 a ese grupo. Sin embargo, para evitar que esto cause problemas a los progtwigs que no entienden local-infile , especifíquelo usando el prefijo loose- :

     [cliente]
     loose-local-infile = 1
    
  • Si LOAD DATA LOCAL está desactivado, ya sea en el servidor o en el cliente, un cliente que intenta emitir dicha instrucción recibe el siguiente mensaje de error:

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

La solución para esto es modificar la línea de comando mysql -e para pasar el --local-infile=1 como este:

 mysql --local-infile=1 -u username -p ` 

Luego ejecute el comando LOAD DATA LOCAL INFILE nuevamente.

local-infile necesita habilitarse tanto en el servidor como en el cliente. Puede lograr esto agregando local-infile = 1 a la sección apropiada en el my.cnf (Unix) o my.ini (Windows) de cada extremo. Por ejemplo, en el cliente:

 [client] local-infile = 1 

También puede habilitar esto en el tiempo de ejecución en el servidor estableciendo la variable del sistema local_infile :

 SET GLOBAL local_infile=1; 

Sin embargo, todavía necesita habilitarlo en el cliente. Puede hacer esto en tiempo de ejecución agregando un parámetro de línea de comandos al comando mysql :

 mysql --local-infile=1 ... 

Si usa Amazon Web Services RDS, puede configurar la configuración del servidor editando o creando un Grupo de parámetros. Busque el parámetro local_infile . Es posible que deba reiniciar su servidor después de aplicar los cambios.

Supongo que su servidor MySQL no tiene LOAD DATA LOCAL habilitado. Vea esta sección de la documentación de MySQL:

Si LOAD DATA LOCAL está desactivado, ya sea en el servidor o en el cliente, un cliente que intenta emitir dicha instrucción recibe el siguiente mensaje de error:

ERROR 1148: el comando usado no está permitido con esta versión de MySQL

Aquí hay un enlace a la página de la que obtuve esto:

http://dev.mysql.com/doc/refman/5.5/en/load-data-local.html