Backup MySQL, remplacer le all-databases pour avoir un accès direct à une base de données

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

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *