Importer et exporter des bases de données dans MySQL à l’aide de la ligne de commande
La gestion des sauvegardes et des migrations de bases de données est une tâche essentielle pour tout administrateur de bases de données MySQL. La ligne de commande permet d’exporter facilement des bases de données vers des fichiers de sauvegarde ou de les importer dans un nouvel environnement. Ce guide explique comment importer et exporter des bases de données MySQL à l’aide de la ligne de commande.
Conditions préalables
Avant de commencer, assurez-vous que
- MySQL est installé et fonctionne sur votre serveur ou votre machine locale.
- Vous avez accès à un terminal ou à une ligne de commande.
- Vous disposez des identifiants MySQL nécessaires, y compris le nom d’utilisateur et le mot de passe.
Exporter des bases de données avec mysqldump
L’utilitaire mysqldump est l’outil standard pour exporter des bases de données dans MySQL. Il crée un fichier .sql qui contient les instructions SQL nécessaires pour recréer la base de données.
1. Exporter une seule base de données
Pour exporter une seule base de données, utilisez la syntaxe suivante :
mysqldump -u [nom d'utilisateur] -p [nom_de_la_base_de_données] > [nom_de_fichier].sql
- -u [nom_utilisateur]: Le nom d’utilisateur MySQL.
- -p : Demande le mot de passe MySQL.
- [nom_de_la_base_de_données]: Le nom de la base de données que vous souhaitez exporter.
- [nom_de_fichier].sql : Le nom du fichier de sortie qui contiendra la sauvegarde de la base de données.
Exemple : [nom_de_base] : nom de la base de données que vous souhaitez exporter :
Cette commande demandera le mot de passe de l’utilisateur root et créera un fichier nommé mydatabase_backup.sql contenant toutes les données et la structure de mydatabase.
2. Exporter plusieurs bases de données
Pour exporter plusieurs bases de données, utilisez l’option –databases suivie des noms des bases de données :
mysqldump -u [nom d'utilisateur] -p --databases [database1] [database2] > [nom du fichier].sql
Exemple :
mysqldump -u root -p --databases db1 db2 > multiple_databases_backup.sql
Cette commande exportera les bases de données db1 et db2 dans le fichier multiple_databases_backup.sql.
3. Exporter toutes les bases de données
Pour exporter toutes les bases de données de votre serveur MySQL, utilisez l’option –all-databases :
mysqldump -u [nom d'utilisateur] -p --all-databases > all_databases_backup.sql
Exemple :
mysqldump -u root -p --all-databases > all_databases_backup.sql
Ceci crée une sauvegarde complète de toutes les bases de données dans all_databases_backup.sql.
4. Exporter uniquement la structure des tables (pas de données)
Si vous n’avez besoin que de la structure des tables sans les données, ajoutez l’option –no-data :
mysqldump -u [nom d'utilisateur] -p --no-data [nom_de_la_base_de_données] > structure_only.sql
Exemple :
mysqldump -u root -p --no-data mydatabase > structure_only.sql
5. Exporter des tables spécifiques
Pour exporter des tables spécifiques d’une base de données, indiquez-les après le nom de la base de données :
mysqldump -u [nom d'utilisateur] -p [nom_de_la_base_de_données] [table1] [table2] > [nom_de_fichier].sql
Exemple :
mysqldump -u root -p mydatabase table1 table2 > tables_backup.sql
Importation de bases de données avec mysql
Pour importer une base de données à partir d’un fichier SQL, utilisez la commande mysql.
1. Importer une seule base de données
Pour importer un fichier SQL dans une base de données MySQL, utilisez la commande suivante :
mysql -u [nom d'utilisateur] -p [nom_de_base_de_données] < [nom_de_fichier].sql
- -u [nom_utilisateur]: Le nom d’utilisateur MySQL.
- -p : Demande le mot de passe MySQL.
- [nom_de_la_base_de_données]: Le nom de la base de données dans laquelle les données seront importées.
- [nom_du_fichier].sql : Le nom du fichier .sql à importer.
Exemple : [nom_de_fichier].sql
mysql -u root -p mydatabase < mydatabase_backup.sql
Cette commande demandera le mot de passe de l’utilisateur root et importera le contenu de mydatabase_backup.sql dans mydatabase.
2. Importation dans une nouvelle base de données
Si vous souhaitez importer dans une nouvelle base de données, vous devez d’abord créer la base de données, puis importer le fichier .sql.
Étape 1 : Créer une nouvelle base de données.
mysql -u [nom d'utilisateur] -p -e "CREATE DATABASE [new_database_name];"
Étape 2 : Importer le fichier .sql dans la nouvelle base de données.
mysql -u [nom d'utilisateur] -p [nom_de_la_nouvelle_base_de_données] < [nom_de_fichier].sql
Exemple :
mysql -u root -p -e "CREATE DATABASE newdatabase ;"
mysql -u root -p newdatabase < mydatabase_backup.sql
3. Importer toutes les bases de données
Si vous avez sauvegardé toutes les bases de données en utilisant –all-databases, vous pouvez les réimporter en utilisant :
mysql -u [nom d'utilisateur] -p < all_databases_backup.sql
Exemple :
mysql -u root -p < all_databases_backup.sql
Cette commande restaurera toutes les bases de données contenues dans le fichier all_databases_backup.sql.
Conseils pour l’utilisation de mysqldump et mysql
- Utilisez la compression : Pour économiser de l’espace disque et du temps de transfert, vous pouvez compresser le fichier de sauvegarde à l’aide de gzip :
mysqldump -u root -p mydatabase | gzip > mydatabase_backup.sql.gz
Et pour l’importer :
gunzip < mydatabase_backup.sql.gz | mysql -u root -p mydatabase
- Vérifier la base de données avant l’importation : Assurez-vous que la base de données dans laquelle vous importez est vide ou contient des données compatibles pour éviter les conflits.
- Vérifiez le jeu de caractères : Si vous avez affaire à des caractères non ASCII, assurez-vous que vous exportez et importez avec le bon jeu de caractères en utilisant l’option –default-character-set :
mysqldump -u root -p --default-character-set=utf8 mydatabase > mydatabase_backup.sql
- Gestion des erreurs : Si vous rencontrez des erreurs lors de l’importation, vérifiez les problèmes courants tels que les bases de données ou les structures de table manquantes et assurez-vous que votre fichier .sql est complet.
Résumé
L’exportation et l’importation de bases de données MySQL à l’aide de la ligne de commande est simple avec mysqldump et mysql. Ces outils offrent une grande flexibilité dans la gestion des sauvegardes, la migration des bases de données entre les serveurs et la création d’exportations spécifiques à la structure ou aux données. En comprenant les commandes et leurs options, vous pouvez assurer le bon fonctionnement des bases de données et maintenir l’intégrité des données pendant les transferts.