Me pasó que cuando quería ejecutar la siguiente sentencia en MySQL, salía un mensaje de error….
mysql> LOAD DATA INFILE 'isis.csv' into table isis FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n' ; ERROR 1290 (HY000): The MySQL server is running with the --secure-file-priv option so it cannot execute this statement
Pues bien, luego de estar buscando un rato en las redes, encuentro que mysql tiene la variable secure_file_priv en su motor, pero antes de la versión 5.7.6 venía desactivada o sin datos por defecto.
Se usa con el fin de limitar las operaciones de carga y descarga de datos, ya que si intentamos exportar datos de una tabla a un archivo, se nos generará el mismo mensaje de error… veamos…..
mysql> select * from isis into outfile '/tmp/nose.csv'; ERROR 1290 (HY000): The MySQL server is running with the --secure-file-priv option so it cannot execute this statement
En este caso, para exportar archivos, lo que debemos hacer es, especificar la ruta del directorio configurado en la variable secure_file_priv
mysql> SHOW VARIABLES LIKE "secure_file_priv"; +------------------+-----------------------+ | Variable_name | Value | +------------------+-----------------------+ | secure_file_priv | /var/lib/mysql-files/ | +------------------+-----------------------+ 1 row in set (0,03 sec) mysql>
Intentamos nuevamente especificando la ruta ….
mysql> select * from isis into outfile '/var/lib/mysql-files/nose.csv'; Query OK, 12 rows affected (0,00 sec) mysql>
Sin problemas hasta aquí.
Ahora, para importar datos, debemos entonces usar el parámetro LOCAL, veamos…
mysql> LOAD DATA LOCAL INFILE 'isis.csv' into table isis FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n' ; Query OK, 12 rows affected (0,12 sec) Records: 12 Deleted: 0 Skipped: 0 Warnings: 0 mysql>
De esta forma se ha solventado el impase del mensaje de error.
Saludos…
Sin respuestas