Sommaire

Accéder à une base MySQL à partir d’un shell

Objectif

Lancer une commande SQL SELECT à partir d’un script et exploiter son résultat, puis lancer la sauvegarde d’une base de données MySQL.

Le script shell

En ligne 3, la requête SQL récupère la colonne libelle de la table fonction. Les données sont stockées dans la variable listeFonctions. Cette variable est ensuite exploitée dans une boucle for en ligne 4.

En ligne 9, la commande mysqldump permet d’exporter une base de données vers le format SQL.

Si cela est nécessaire, les codes retour des commandes mysql et mysqldump peuvent être exploités (exemple en ligne 9).

$ nl test_sql.sh  
     1  #! /bin/bash  
         
     2  # Recuperer une liste de fonctions a partir de la BD  
     3  listeFonctions=$(mysql -unomUser -pmotPasse -h machineServeur 
--batch --skip-column-names --execute "select libelle from fonction"  
maBaseASauver 2>/dev/null)  
     4  for fonction in "$listeFonctions"   
     5  do  
     6    echo "Traitement de la fonction $fonction"  
     7  done  
         
     8  # Sauvegarde de la base de donnees  
     9  if mysqldump -unomUser -pmotPasse -h machineServeur maBaseASauver >  
/tmp/ maBaseASauver.sql ...