Exportar más de 1000 registros en MySQL a Excel

Antonio J. Galisteo

A veces los servidores son, cuanto menos, caprichosos. Recientemente tuvimos la necesidad de exportar a Excel una tabla con más de 1000 registros.

Estábamos haciéndolo desde phpMyAdmin y pese a estar todos los registros seleccionados antes de exportar, solo se exportaban los 1000 primeros registros.

En principio, parece algo relacionado con la configuración de phpMyAdmin o MySQL, pero para salir del apuro podemos hacerlo con SQL «a pelo». Veamos cómo exportar a Excel una tabla con más de 1000 registros:

SELECT *
FROM mi_tabla
WHERE mi_condicion
-- Datos de la exportación
INTO OUTFILE
        '/tmp/archivo_salida.csv'
        FIELDS TERMINATED BY ';'
        OPTIONALLY ENCLOSED BY '\"'
        LINES TERMINATED BY '\r\n'

Si estas trabajando a con phpMyAdmin, es probable que te muestre este error:

 #1290 - The MySQL server is running with the --secure-file-priv option so it cannot execute this statement

Esto es porque el usuario mysql que está ejecutando la tarea no tiene permisos de escritura en ese directorio. Podemos usar el directorio:

/var/lib/mysql-files

Y es ahí donde podemos guardar el archivo csv.

Con esto, generamos un archivo csv. Este archivo se guardará en el directorio que indiquemos, en este caso /tmp/, en el servidor, por lo que para bajarlo a nuestra máquina debemos usar un programa como WINCSP o con Filezilla a través del protocolo SFTP.

Una vez en nuestra máquina, lo abrimos con Excel, lo guardamos como xls o xlsx y ya tenemos el archivo en formato Excel.

Esperamos que os haya sido de utilidad.

Publicado el 02-01-2014

Donar

Si te ha sido de ayuda y quieres hacer una donación te lo agradeceremos :)

Compartelo!


Deja un comentario

Comentanos

*

Ir arriba de la pagina