Sauvegarde et récupération de bases de données MySQL

MySQLMySQLBeginner
Pratiquer maintenant

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

Introduction

Dans ce laboratoire (lab), vous apprendrez à sauvegarder et à restaurer des bases de données MySQL à l'aide de l'outil en ligne de commande mysqldump. Le laboratoire couvre les techniques essentielles pour créer des sauvegardes logiques et les restaurer afin de garantir l'intégrité et la disponibilité des données.

Le laboratoire vous guide tout au long de l'exportation d'une base de données, y compris la création d'une base de données et d'une table d'exemple, puis la sauvegarde de celle-ci à l'aide de mysqldump. Vous apprendrez également à sauvegarder une seule table, à restaurer une base de données à partir d'un fichier de sauvegarde (dump file), et enfin, à vérifier l'exactitude des données restaurées pour confirmer le succès du processus de restauration.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL mysql(("MySQL")) -.-> mysql/BasicKeywordsandStatementsGroup(["Basic Keywords and Statements"]) mysql(("MySQL")) -.-> mysql/SystemManagementToolsGroup(["System Management Tools"]) mysql/BasicKeywordsandStatementsGroup -.-> mysql/use_database("Database Selection") mysql/BasicKeywordsandStatementsGroup -.-> mysql/create_database("Database Creation") mysql/BasicKeywordsandStatementsGroup -.-> mysql/drop_database("Database Deletion") mysql/BasicKeywordsandStatementsGroup -.-> mysql/create_table("Table Creation") mysql/BasicKeywordsandStatementsGroup -.-> mysql/select("Data Retrieval") mysql/BasicKeywordsandStatementsGroup -.-> mysql/insert("Data Insertion") mysql/SystemManagementToolsGroup -.-> mysql/mysqldump("Data Export Utility") subgraph Lab Skills mysql/use_database -.-> lab-550902{{"Sauvegarde et récupération de bases de données MySQL"}} mysql/create_database -.-> lab-550902{{"Sauvegarde et récupération de bases de données MySQL"}} mysql/drop_database -.-> lab-550902{{"Sauvegarde et récupération de bases de données MySQL"}} mysql/create_table -.-> lab-550902{{"Sauvegarde et récupération de bases de données MySQL"}} mysql/select -.-> lab-550902{{"Sauvegarde et récupération de bases de données MySQL"}} mysql/insert -.-> lab-550902{{"Sauvegarde et récupération de bases de données MySQL"}} mysql/mysqldump -.-> lab-550902{{"Sauvegarde et récupération de bases de données MySQL"}} end

Exporter une base de données avec mysqldump

Dans cette étape, vous apprendrez à exporter une base de données à l'aide de l'outil en ligne de commande mysqldump. mysqldump est un utilitaire qui vous permet de créer une sauvegarde logique de votre base de données MySQL. Cette sauvegarde peut ensuite être utilisée pour restaurer la base de données à son état initial ou pour la migrer vers un autre serveur.

Avant de commencer, créons une base de données et une table d'exemple avec lesquelles travailler. Ouvrez votre terminal et exécutez les commandes suivantes pour vous connecter au serveur MySQL en tant qu'utilisateur root. Vous serez peut-être invité à saisir le mot de passe root, qui est généralement vide par défaut dans un environnement de développement.

mysql -u root -p

Maintenant, créons une base de données nommée mydatabase :

CREATE DATABASE mydatabase;

Ensuite, basculez vers la base de données mydatabase :

USE mydatabase;

Créez une table simple nommée users :

CREATE TABLE users (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(255) NOT NULL,
    email VARCHAR(255) UNIQUE
);

Insérez des données d'exemple dans la table users :

INSERT INTO users (name, email) VALUES
('John Doe', '[email protected]'),
('Jane Smith', '[email protected]');

Quittez l'interpréteur de commandes MySQL :

exit

Maintenant que nous avons une base de données avec des données, exportons-la à l'aide de mysqldump. La syntaxe de base pour exporter une base de données est :

mysqldump -u [username] -p[password] [database_name] > [output_file.sql]

Remplacez [username] par votre nom d'utilisateur MySQL (généralement root), [password] par votre mot de passe MySQL (le cas échéant), [database_name] par le nom de la base de données que vous souhaitez exporter (mydatabase), et [output_file.sql] par le nom du fichier où vous souhaitez enregistrer la sauvegarde (par exemple, mydatabase_backup.sql).

Dans notre cas, la commande serait :

mysqldump -u root -p mydatabase > ~/project/mydatabase_backup.sql

Vous serez invité à saisir le mot de passe root de MySQL. Entrez le mot de passe (le cas échéant).

Cette commande créera un fichier nommé mydatabase_backup.sql dans votre répertoire ~/project, qui contient les instructions SQL nécessaires pour recréer la base de données mydatabase et son contenu.

Vous pouvez vérifier que le fichier a été créé en listant le contenu de votre répertoire ~/project :

ls ~/project

Vous devriez voir mydatabase_backup.sql dans la sortie.

Vous pouvez également afficher le contenu du fichier de sauvegarde à l'aide de nano :

nano ~/project/mydatabase_backup.sql

Cela vous montrera les instructions SQL générées par mysqldump. Appuyez sur Ctrl+X pour quitter nano.

Sauvegarder une seule table

Dans cette étape, vous apprendrez à sauvegarder une seule table d'une base de données MySQL à l'aide de la commande mysqldump. Cela est utile lorsque vous avez seulement besoin de sauvegarder une table spécifique et non l'ensemble de la base de données.

Nous continuerons à utiliser la base de données mydatabase et la table users que nous avons créées à l'étape précédente.

Pour sauvegarder une seule table, vous utilisez la même commande mysqldump, mais vous spécifiez le nom de la table après le nom de la base de données :

mysqldump -u [username] -p[password] [database_name] [table_name] > [output_file.sql]

Remplacez [username] par votre nom d'utilisateur MySQL (généralement root), [password] par votre mot de passe MySQL (le cas échéant), [database_name] par le nom de la base de données (mydatabase), [table_name] par le nom de la table que vous souhaitez exporter (users), et [output_file.sql] par le nom du fichier où vous souhaitez enregistrer la sauvegarde (par exemple, users_backup.sql).

Dans notre cas, la commande serait :

mysqldump -u root -p mydatabase users > ~/project/users_backup.sql

Vous serez invité à saisir le mot de passe root de MySQL. Entrez le mot de passe (le cas échéant).

Cette commande créera un fichier nommé users_backup.sql dans votre répertoire ~/project, qui contient les instructions SQL nécessaires pour recréer la table users et son contenu.

Vous pouvez vérifier que le fichier a été créé en listant le contenu de votre répertoire ~/project :

ls ~/project

Vous devriez voir à la fois mydatabase_backup.sql (de l'étape précédente) et users_backup.sql dans la sortie.

Vous pouvez également afficher le contenu du fichier de sauvegarde à l'aide de nano :

nano ~/project/users_backup.sql

Cela vous montrera les instructions SQL générées par mysqldump spécifiquement pour la table users. Appuyez sur Ctrl+X pour quitter nano.

Maintenant, ajoutons une autre table à notre base de données pour illustrer davantage le processus de sauvegarde d'une seule table. Connectez-vous au serveur MySQL :

mysql -u root -p

Basculez vers la base de données mydatabase :

USE mydatabase;

Créez une nouvelle table nommée products :

CREATE TABLE products (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(255) NOT NULL,
    price DECIMAL(10, 2)
);

Insérez des données d'exemple dans la table products :

INSERT INTO products (name, price) VALUES
('Laptop', 1200.00),
('Mouse', 25.00);

Quittez l'interpréteur de commandes MySQL :

exit

Maintenant, si vous souhaitez seulement sauvegarder la table products, vous utiliserez la commande suivante :

mysqldump -u root -p mydatabase products > ~/project/products_backup.sql

Cela créera un fichier nommé products_backup.sql dans votre répertoire ~/project contenant uniquement les données de la table products.

Restaurer une base de données à partir d'un fichier de dump

Dans cette étape, vous apprendrez à restaurer une base de données à partir d'un fichier de dump créé par mysqldump. Il s'agit du processus de recréation de la base de données et de son contenu à partir des instructions SQL stockées dans le fichier de sauvegarde.

Tout d'abord, supprimons la base de données mydatabase pour simuler un scénario où la base de données doit être restaurée. Connectez-vous au serveur MySQL :

mysql -u root -p

Supprimez la base de données mydatabase :

DROP DATABASE mydatabase;

Quittez l'interpréteur de commandes MySQL :

exit

Maintenant, nous allons restaurer la base de données mydatabase à partir du fichier mydatabase_backup.sql que nous avons créé à la première étape. La syntaxe de base pour restaurer une base de données est :

mysql -u [username] -p[password] [database_name] < [input_file.sql]

Remplacez [username] par votre nom d'utilisateur MySQL (généralement root), [password] par votre mot de passe MySQL (le cas échéant), [database_name] par le nom de la base de données que vous souhaitez restaurer (mydatabase), et [input_file.sql] par le nom du fichier de sauvegarde (mydatabase_backup.sql).

Avant de restaurer, nous devons recréer la base de données mydatabase, car nous venons de la supprimer. Connectez-vous au serveur MySQL :

mysql -u root -p

Créez la base de données mydatabase :

CREATE DATABASE mydatabase;

Quittez l'interpréteur de commandes MySQL :

exit

Maintenant, restaurez la base de données :

mysql -u root -p mydatabase < ~/project/mydatabase_backup.sql

Vous serez invité à saisir le mot de passe root de MySQL. Entrez le mot de passe (le cas échéant).

Cette commande exécutera les instructions SQL dans mydatabase_backup.sql et recréera la base de données mydatabase, ses tables et ses données.

Pour vérifier que la base de données a été restaurée, connectez-vous au serveur MySQL :

mysql -u root -p

Basculez vers la base de données mydatabase :

USE mydatabase;

Affichez les tables de la base de données :

SHOW TABLES;

Vous devriez voir les tables users et products.

Sélectionnez toutes les données de la table users :

SELECT * FROM users;

Vous devriez voir les données que nous avons insérées à la première étape.

Sélectionnez toutes les données de la table products :

SELECT * FROM products;

Vous devriez voir les données que nous avons insérées à la deuxième étape.

Quittez l'interpréteur de commandes MySQL :

exit

Vous avez maintenant restauré avec succès la base de données mydatabase à partir du fichier mydatabase_backup.sql.

Vérifier l'exactitude des données restaurées

Dans cette étape, vous allez vérifier l'exactitude des données restaurées en les comparant aux données originales. Cela garantit que le processus de sauvegarde et de restauration a été réussi et qu'aucune donnée n'a été perdue ou corrompue.

Nous allons nous connecter à la base de données mydatabase restaurée et interroger les tables users et products pour vérifier si les données correspondent à celles que nous avons initialement insérées.

Connectez-vous au serveur MySQL :

mysql -u root -p

Basculez vers la base de données mydatabase :

USE mydatabase;

Sélectionnez toutes les données de la table users :

SELECT * FROM users;

Vous devriez voir la sortie suivante :

+----+----------+-----------------------+
| id | name     | email                 |
+----+----------+-----------------------+
|  1 | John Doe | [email protected]  |
|  2 | Jane Smith | [email protected] |
+----+----------+-----------------------+
2 rows in set (0.00 sec)

Cela confirme que les données de la table users ont été restaurées avec succès.

Maintenant, sélectionnez toutes les données de la table products :

SELECT * FROM products;

Vous devriez voir la sortie suivante :

+----+---------+---------+
| id | name    | price   |
+----+---------+---------+
|  1 | Laptop  | 1200.00 |
|  2 | Mouse   |   25.00 |
+----+---------+---------+
2 rows in set (0.00 sec)

Cela confirme que les données de la table products ont également été restaurées avec succès.

Si la sortie correspond aux données que vous avez initialement insérées, le processus de restauration a été réussi. Si la sortie est différente ou si vous rencontrez des erreurs, il se peut qu'il y ait eu un problème lors du processus de sauvegarde ou de restauration.

Pour garantir davantage l'intégrité des données, vous pouvez effectuer des requêtes plus complexes pour vérifier des valeurs de données spécifiques ou des relations entre les tables. Cependant, pour ce laboratoire, nous avons vérifié l'exactitude de base des données en vérifiant le contenu des tables users et products.

Quittez l'interpréteur de commandes MySQL :

exit

Vous avez maintenant vérifié avec succès l'exactitude des données restaurées. Cela termine le laboratoire sur l'exportation, la sauvegarde et la restauration de bases de données MySQL.

Résumé

Dans ce laboratoire, vous avez appris à utiliser l'outil en ligne de commande mysqldump pour créer une sauvegarde logique d'une base de données MySQL. Cela a impliqué la création d'une base de données d'exemple nommée mydatabase avec une table users et l'insertion de données d'exemple. Vous avez ensuite utilisé mysqldump pour exporter l'ensemble de la base de données dans un fichier SQL, mydatabase_backup.sql.

Le processus a démontré la syntaxe de base de la commande mysqldump, y compris la spécification du nom d'utilisateur, du mot de passe, du nom de la base de données et du fichier de sortie. Ce fichier de sauvegarde peut être utilisé pour restaurer la base de données à son état initial ou la migrer vers un autre serveur.