Sauvegarde et restauration base de données MySQL

Sauvegarder une base de données

mysqldump -u root -p mcv_intranet_home > ./var/tmp/dump/intranet_home.sql

La commande ci-dessus sauvegarde la base de données nommée mcv_intranet_home dans le fichier intranet_home.sql. Il faudra indiquer le mot de passe "root" afin de pouvoir réaliser la sauvegarde. Si l'utilisateur n'a pas de mot de passe ou qu'un fichier ~/.my.cnf est utilisé, il faudra supprimer l'option -p.

Pour obtenir un fichier horodaté :

mysqldump -u root -p mcv_intranet_home > ./var/tmp/dump/intranet_home_$(date +%Y%m%d).sql

Pour que la base de données soit créée lors de la restauration, il faudra ajouter l'option --databases.

mysqldump -u root -p --databases mcv_intranet_home > ./var/tmp/dump/intranet_home_$(date +%Y%m%d).sql

Lignes ajoutées au début du dump :

CREATE DATABASE `mcv_intranet_home`;
USE `mcv_intranet_home`;

Pour supprimer la base de données avant restauration, il faudra ajouter à la commande l'option --add-drop-database

mysqldump -u root -p --databases mcv_intranet_home --add-drop-database > ./var/tmp/dump/intranet_home_$(date +%Y%m%d).sql

Ligne ajoutée au début du dump :

DROP DATABASE IF EXISTS `mcv_intranet_home`;

Sauvegarder plusieurs bases de données

Sauvegarder deux bases de données nommées : bdd1 et bdd2

mysqldump -u root -p bdd1 bdd2 > ./var/tmp/dump/bdd1_et_bdd2.sql

Sauvegarder toutes les bases de données

mysqldump -u root -p --all-databases > ./var/tmp/dump/all_bdds.sql

Restaurer une base de données

mysql -u root -p bdd1 < bdd1.sql

Créer/Supprimer une base de données

Selon comment a été généré le dump ou le contexte, vous pouvez avoir besoin de céer ou supprimer la base de données avant restauration.

mysql -u root -e "DROP DATABASE bbd1; CREATE DATABASE bdd1;"