Backup MySQL, remplacer le all-databases pour avoir un accès direct à une base de données
Si vous effectué vos backups MySQL par la commande –all-databases et qu’il vous arrive, de devoir restaurer une seule base de données, l’opération peut être délicate et moins « propre » si vous devez, par exemple, rendre une base de données précises à un tiers.
Commande habituelle :
## Je ne mets pas les informations de login mysqldump --all-databases --opt > all-databases.sql
Voici un petit script bash qui vous permettra de backuper toutes les tables très simplement. J’utilise la fonction SHOW DATABASES; de MySQL pour afficher la liste des bases de données et je les backup.
La fonction grep me permet de nettoyer ce dont je n’ai pas besoin, attention à ne pas avoir de table contenant ces mots là.
Script de backup automatique de chaque table
#!/bin/bash DBPASS="passroot" DBUSER="root" DBHOST="127.0.0.1" BACKUPDIR="/data/bkp/sql" FILEFORMAT=`date +"%d"`_`hostname -f`.sql for database in `mysql --user=$DBUSER --password=$DBPASS --host=$DBHOST -e "SHOW DATABASES;" |grep -v "Database\|information_schema\|mysql" | cut -d " " -f 1`; do mysqldump --user=$DBUSER --password=$DBPASS --host=$DBHOST --opt $database > $BACKUPDIR/$database"_"$FILEFORMAT; sleep 1; done;
Voilà, avec ces commandes simples, vous devriez simplement pouvoir restaurer très simplement une base de données précise.
Laisser un commentaire