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;"