En un anterior Post hable sobre como automatizar una copia de seguridad de la base de datos MySQL en el indicaba que es una mala practica utilizar la contraseña de la base de datos en Scripts, pues en este caso es igual y debemos siempre manejar nuestros datos de conexión desde un archivo externo de configuración y luego proceder a otorgar le los permisos .
Conexión Insegura
[code language=»bash»]
mysql -u root –password=MiContraseña MiBaseDeDatos \ -e "SELECT * FROM tabla" -B > fichero_salida.csv
[/code]
Proceso para conexión segura
Creamos un fichero externo de configuración lo guardamos con el nombre mysql-credentials.cnf:
[code language=»bash»]
[client]
user=usuarioDB
password=contraseñaDB
host=localhost
[/code]
Configurando los permisos.
[code language=»bash»]
chmod 600 mysql-credentials.cnf
[/code]
ahora ya podemos realizar una conexión segura para exportar nuestra consulta SQL a CSV.
[code language=»bash»]
mysql –defaults-file=/home/usuario/mysql-credentials.cnf NombreBaseDeDatos \ -e "SELECT * FROM tabla" -B > fichero_salida.csv
[/code]
Opciones de Exportación:
- -e: Indicar consulta SQL
- -B: Tipo de Salida «batch» (campos separados por tabs)