Accéder à une base MySQL à partir d’un shell MySQL
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. SQL
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. mysqldump
Si cela est nécessaire, les codes retour des commandes mysql et mysqldump peuvent être exploités (exemple en ligne 9). mysql
$ nl test_sql.sh
1 #! /bin/bash
2 # Récupérer une liste de fonctions à 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/...