Índice

Acceder a una base MySQL a partir de un shell

Objetivo

Ejecutar un comando SQL SELECT a partir de un script y explotar su resultado, luego lanzar la copia de seguridad de una base de datos MySQL.

El script shell

En la línea 3, la consulta SQL recuperará la columna redaccion de la tabla funcion. Los datos se almacenan en la variable lista Funciones. Esta variable se utiliza a continuación en un bucle for en la línea 4.

En la línea 9, el comando mysqldump permite exportar una base de datos al formato SQL.

Si es necesario, se pueden utilizar los códigos de retorno de los comandos mysql y mysqldump (por ejemplo en línea 9).

$ nl test_sql.sh   
     1  #! /bin/bash 
 
     2 # recuperar una lista de funciones a partir de la BD 
     3 listaFunciones=$(mysql -unomUser -pContrase -h machineServer 
--batch --skip-column-names --execute "select redaccion from funcion" 
miBaseAGuardar 2>/dev/null) 
     4 for función in "$listaFunciones" 
     5 dO 
     6   echo "Tratamiento de la función $función".  
     7 done 
 
     8 # Respaldar la base de datos 
     9 if mysqldump -unomUser -pContrase -h machineServer miBaseAGuardar > 
/tmp/ miBaseAGuardar.sql 2> /tmp/ERROR 
     10 then 
     11   echo "Éxito ...