Script bash pour exporter vos bases mysql dans des fichiers séparés

Avec la commande mysqldump, il est possible d’exporter toutes ses bases mysql en une seule ligne, seul soucis les bases de données sont compresser dans un seul et unique fichier .gz, c’est pas très pratique pour retrouver la base à restaurer en cas de problème.

Voici donc comment avoir un fichier par database :

for database in `mysql -N -u $DBUSER --password=$DBPASSWD -e 'SHOW DATABASES;' | cat`; do
 if [ $database != "information_schema" ]; then
  mysqldump --databases $database -u $DBUSER --password=$DBPASSWD --lock-tables | gzip -c > /home/alexis/backup/mysql/`date +%F`-$database.sql.gz
 fi
done

Debian mySQL import et dump en ligne de commande

Importation

# Décompresser un fichier .gz
gzip -d fichier.sql.gz

# Import dans la base
mysql -u root -p -b MYDATABASE < /var/www/fichier.sql

Dump SQL dans un seul fichier compressé

# Exporter toutes les bases
mysqldump --all-databases --user=root --password=MYPASS --lock-tables | gzip -c > /root/database/`date +%F`.sql.gz

# Exporter une seule base
mysqldump --databases MYDATABASE --user=root --password=MYPASS --lock-tables | gzip -c > /root/db-` date +%F`.sql.gz