Restaurer une base de données entière
Maintenant que vous avez des sauvegardes, pratiquons leur restauration. Dans cette étape, vous simulerez une catastrophe en supprimant entièrement mydatabase, puis en la restaurant à partir de votre fichier de sauvegarde complet.
Tout d'abord, supprimons la base de données. L'indicateur -e vous permet d'exécuter une seule commande SQL directement depuis votre terminal.
sudo mysql -u root -e "DROP DATABASE mydatabase;"
Vérifiez que la base de données a disparu.
sudo mysql -u root -e "SHOW DATABASES;"
Vous verrez que mydatabase n'est plus dans la liste.
Avant de pouvoir restaurer les données, vous devez créer une base de données vide portant le même nom.
sudo mysql -u root -e "CREATE DATABASE mydatabase;"
Maintenant, restaurez la base de données en redirigeant le fichier mydatabase_backup.sql comme entrée pour le client mysql.
sudo mysql -u root mydatabase < /home/labex/backup/mydatabase_backup.sql
La commande exécutera toutes les instructions SQL du fichier de sauvegarde, recréant les tables et insérant les données.
Pour vérifier la restauration, connectez-vous à MySQL et vérifiez les tables et leur contenu.
sudo mysql -u root
À l'invite mysql>, exécutez ces commandes :
USE mydatabase;
SHOW TABLES;
SELECT * FROM users;
Vous devriez à nouveau voir les tables products et users, et la table users devrait contenir ses données d'origine.
+--------------------+
| Tables_in_mydatabase |
+--------------------+
| products |
| users |
+--------------------+
2 rows in set (0.00 sec)
+----+------------+--------------------------+
| id | name | email |
+----+------------+--------------------------+
| 1 | John Doe | john.doe@example.com |
| 2 | Jane Smith | jane.smith@example.com |
+----+------------+--------------------------+
2 rows in set (0.00 sec)
Quittez le shell MySQL.
exit
Vous avez réussi à récupérer l'intégralité de la base de données après une défaillance catastrophique.