Économisez 15% sur tous les services d'hébergement

Testez vos compétences et obtenez Réduction sur tout plan d'hébergement

Utilisez le code : Skills Commencer
Sections
Administration Linux Serveurs virtuels

Importation et Exportation de Bases de Données MySQL : Un Guide Complet

La gestion efficace des bases de données est l’épine dorsale de toute application web fiable. Que vous effectuiez des sauvegardes régulières, migriez des données entre serveurs ou configuriez un nouvel environnement, savoir comment importer et exporter des bases de données MySQL est une compétence essentielle pour chaque développeur et administrateur système.

Ce guide complet vous guide à travers chaque méthode, commande et étape de dépannage dont vous avez besoin pour gérer les bases de données MySQL en toute confiance — de la ligne de commande à phpMyAdmin.

Pourquoi les opérations d’importation et d’exportation MySQL sont importantes

Les exportations et importations de bases de données MySQL servent plusieurs objectifs critiques :

  • Sauvegarde et récupération après sinistre — protégez vos données contre la suppression accidentelle ou la défaillance du serveur
  • Migration de serveur — déplacez les bases de données entre les environnements d’hébergement sans perte de données
  • Développement et staging — clonez les bases de données de production à des fins de test
  • Contrôle de version — prenez un instantané de l’état de votre base de données avant les mises à jour majeures de l’application

Pour que ces opérations fonctionnent correctement, votre infrastructure d’hébergement est importante. Un environnement VPS Hosting avec stockage NVMe, accès root complet et débit I/O élevé garantit que même les gros vidages de base de données se terminent rapidement et de manière fiable.

1. Prérequis : ce dont vous avez besoin avant de commencer

Avant de vous lancer dans les exportations ou importations, confirmez que vous avez les éléments suivants en place :

  • Accès au serveur MySQL avec des privilèges utilisateur suffisants (SELECT, LOCK TABLES, SHOW VIEW, TRIGGER pour les exportations ; CREATE, INSERT, ALTER pour les importations)
  • Client MySQL installé sur votre machine locale ou serveur
  • Un terminal ou client SSH pour les opérations en ligne de commande
  • phpMyAdmin (optionnel) si vous préférez une interface graphique
  • Espace disque suffisant pour le fichier de vidage .sql, en particulier pour les grandes bases de données

> Conseil professionnel : Si vous gérez plusieurs bases de données dans plusieurs projets, envisagez un VPS avec cPanel pour une expérience de gestion de base de données rationalisée et basée sur GUI.

2. Exportation d’une base de données MySQL

L’exportation d’une base de données MySQL génère un fichier .sql contenant le schéma complet de la base de données (structure) et les données. Ce fichier peut être utilisé ultérieurement pour restaurer ou migrer votre base de données.

Méthode 1 : Utilisation de la ligne de commande MySQL (mysqldump)

L’utilitaire mysqldump est l’outil le plus fiable et le plus largement utilisé pour exporter les bases de données MySQL. Il fonctionne directement à partir du terminal et prend en charge une large gamme d’options.

Étape 1 : Ouvrez votre terminal

Connectez-vous à votre serveur via SSH ou ouvrez une session de terminal locale.

Étape 2 : Exécutez la commande mysqldump

mysqldump -u username -p database_name > export_file.sql

Remplacez les espaces réservés comme suit :

Espace réservéDescription
usernameVotre nom d’utilisateur MySQL (par exemple, root ou un utilisateur DB dédié)
database_nameLe nom de la base de données que vous souhaitez exporter
export_file.sqlLe nom et le chemin souhaités pour le fichier de sortie

Étape 3 : Entrez votre mot de passe MySQL

Vous serez invité à entrer votre mot de passe. L’exportation procédera immédiatement après l’authentification.

Exemple :

mysqldump -u root -p my_wordpress_db > /home/backups/wordpress_backup_2024.sql

Drapeaux mysqldump utiles :

# Export all databases
mysqldump -u root -p --all-databases > all_databases.sql

# Export only the database structure (no data)
mysqldump -u root -p --no-data database_name > structure_only.sql

# Compress the output on the fly
mysqldump -u root -p database_name | gzip > export_file.sql.gz

# Export specific tables only
mysqldump -u root -p database_name table1 table2 > partial_export.sql

Méthode 2 : Exportation via phpMyAdmin

phpMyAdmin fournit une interface graphique conviviale pour les exportations de bases de données, idéale pour ceux qui préfèrent ne pas utiliser la ligne de commande.

Étape 1 : Connectez-vous à phpMyAdmin

Ouvrez votre navigateur et accédez à votre installation phpMyAdmin (par exemple, https://yourdomain.com/phpmyadmin).

Étape 2 : Sélectionnez votre base de données

Dans la barre latérale gauche, cliquez sur la base de données que vous souhaitez exporter.

Étape 3 : Accédez à l’onglet Exporter

Cliquez sur l’onglet Exporter dans le menu de navigation supérieur.

Étape 4 : Choisissez votre méthode d’exportation

  • Rapide — Exporte l’intégralité de la base de données avec les paramètres par défaut. Convient à la plupart des cas d’utilisation.
  • Personnalisé — Vous permet de sélectionner des tables spécifiques, le format de sortie, la compression et d’autres options.

Étape 5 : Sélectionnez le format SQL

Assurez-vous que le format est défini sur SQL (par défaut). Vous pouvez également choisir CSV, XML ou d’autres formats selon vos besoins.

Étape 6 : Cliquez sur Exécuter

phpMyAdmin générera et téléchargera le fichier .sql sur votre machine locale.

3. Importation d’une base de données MySQL

L’importation d’un fichier .sql restaure une base de données précédemment exportée sur un serveur MySQL. C’est la méthode standard pour les migrations, les restaurations et les déploiements.

Méthode 1 : Utilisation de la ligne de commande MySQL

Étape 1 : Assurez-vous que la base de données cible existe

Avant d’importer, la base de données de destination doit déjà exister. Si ce n’est pas le cas, créez-la :

mysql -u root -p -e "CREATE DATABASE new_database_name;"

Étape 2 : Exécutez la commande d’importation

mysql -u username -p database_name < import_file.sql

Remplacez les espaces réservés :

Espace réservéDescription
usernameVotre nom d’utilisateur MySQL
database_nameLa base de données cible à importer
import_file.sqlLe chemin d’accès à votre fichier .sql

Exemple :

mysql -u root -p my_wordpress_db < /home/backups/wordpress_backup_2024.sql

Importation d’un fichier compressé :

gunzip < export_file.sql.gz | mysql -u root -p database_name

Étape 3 : Vérifiez l’importation

Une fois la commande terminée, connectez-vous à MySQL et vérifiez les données :

mysql -u root -p
USE database_name;
SHOW TABLES;

Méthode 2 : Importation via phpMyAdmin

Étape 1 : Connectez-vous à phpMyAdmin

Ouvrez phpMyAdmin dans votre navigateur.

Étape 2 : Sélectionnez ou créez la base de données cible

  • Si la base de données existe déjà, cliquez dessus dans la barre latérale gauche.
  • Si ce n’est pas le cas, cliquez sur Bases de données dans le menu supérieur, entrez un nouveau nom de base de données et cliquez sur Créer.

Étape 3 : Accédez à l’onglet Importer

Cliquez sur l’onglet Importer dans le menu de navigation supérieur.

Étape 4 : Choisissez votre fichier

Cliquez sur Choisir un fichier et sélectionnez le fichier .sql de votre machine locale.

Étape 5 : Configurez les paramètres d’importation

  • Ensemble de caractères : Assurez-vous qu’il correspond à l’encodage de votre base de données (généralement utf8mb4)
  • Importation partielle : Utile pour reprendre les importations interrompues
  • Format : Doit être défini sur SQL automatiquement

Étape 6 : Cliquez sur Exécuter

phpMyAdmin commencera le processus d’importation. Attendez le message de confirmation de succès vert avant de fermer l’onglet.

> Remarque : phpMyAdmin a une limite de taille de fichier de téléchargement par défaut (généralement 2 Mo–128 Mo). Pour les bases de données plus grandes, utilisez la méthode en ligne de commande ou ajustez les paramètres PHP comme décrit dans la section dépannage ci-dessous.

4. Techniques avancées d’exportation et d’importation

Automatisation des sauvegardes MySQL avec des tâches Cron

Pour les environnements de production, les exportations manuelles ne suffisent pas. Automatisez vos sauvegardes de base de données à l’aide d’une tâche cron :

# Open the crontab editor
crontab -e

# Add this line to run a daily backup at 2:00 AM
0 2 * * * mysqldump -u root -pYourPassword database_name | gzip > /backups/db_$(date +%F).sql.gz

Cela garantit que vous avez toujours une sauvegarde récente sans intervention manuelle.

Migration de bases de données entre serveurs

Pour migrer une base de données directement d’un serveur à un autre sans créer de fichier intermédiaire :

mysqldump -u root -p database_name | ssh user@remote_server "mysql -u root -p remote_database"

Cela canalise la sortie de vidage directement via SSH dans l’instance MySQL distante — efficace et rapide dans un environnement VPS Hosting à haut débit.

Gestion des grandes bases de données

Pour les bases de données dépassant plusieurs gigaoctets, envisagez ces optimisations :

# Use single-transaction for InnoDB tables (avoids table locks)
mysqldump --single-transaction -u root -p database_name > export.sql

# Disable foreign key checks during import for speed
mysql -u root -p database_name -e "SET foreign_key_checks = 0;"
mysql -u root -p database_name < import_file.sql
mysql -u root -p database_name -e "SET foreign_key_checks = 1;"

5. Dépannage des erreurs courantes d’importation/exportation MySQL

Erreur 1049 : Base de données inconnue

ERROR 1049 (42000): Unknown database 'database_name'

Cause : La base de données cible n’existe pas.

Solution : Créez la base de données avant d’importer :

mysql -u root -p -e "CREATE DATABASE database_name CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;"

Erreur 2002 : Impossible de se connecter au serveur MySQL

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock'

Cause : Le service MySQL n’est pas en cours d’exécution ou le chemin du socket est incorrect.

Solution : Vérifiez et redémarrez le service MySQL :

# Check MySQL status
sudo systemctl status mysql

# Start MySQL if it's stopped
sudo systemctl start mysql

# For MariaDB
sudo systemctl start mariadb

Erreur 1044 : Accès refusé

ERROR 1044 (42000): Access denied for user 'username'@'localhost' to database 'database_name'

Cause : L’utilisateur MySQL ne dispose pas de privilèges suffisants.

Solution : Accordez les autorisations nécessaires :

mysql -u root -p
GRANT ALL PRIVILEGES ON database_name.* TO 'username'@'localhost';
FLUSH PRIVILEGES;

Limite de taille de fichier phpMyAdmin dépassée

Cause : Le fichier .sql dépasse la limite de téléchargement de phpMyAdmin.

Solution : Modifiez votre fichier de configuration PHP (php.ini) :

upload_max_filesize = 256M
post_max_size = 256M
max_execution_time = 600
memory_limit = 512M

Après l’enregistrement, redémarrez votre serveur web :

sudo systemctl restart apache2
# or
sudo systemctl restart nginx

Sinon, passez à la méthode d’importation en ligne de commande, qui n’a pas de restrictions de taille de fichier.

L’importation s’arrête à mi-chemin (délai d’expiration)

Cause : Les grandes importations dépassent les limites de délai d’expiration PHP ou MySQL.

Solution : Utilisez la ligne de commande pour les fichiers volumineux, ou augmentez le délai d’expiration de MySQL :

SET GLOBAL wait_timeout = 28800;
SET GLOBAL interactive_timeout = 28800;

6. Meilleures pratiques de sécurité pour les exportations et importations MySQL

Protéger vos vidages de base de données est tout aussi important que de les créer. Suivez ces meilleures pratiques :

  • Chiffrez les vidages sensibles — Utilisez GPG pour chiffrer les fichiers exportés avant de les stocker ou de les transférer :
  gpg --symmetric --cipher-algo AES256 export_file.sql
  • Limitez les autorisations de fichier — Assurez-vous que les fichiers de vidage ne sont pas lisibles par tous :
  chmod 600 export_file.sql
  • Utilisez des utilisateurs MySQL dédiés — Évitez d’utiliser root pour les exportations régulières. Créez un utilisateur de sauvegarde avec les privilèges minimaux requis.
  • Stockez les sauvegardes hors serveur — Téléchargez les vidages vers un emplacement distant ou un stockage d’objets pour vous protéger contre les défaillances au niveau du serveur.
  • Sécurisez votre connexion — Utilisez toujours SSL/TLS pour les connexions MySQL distantes. Associez cela à un Certificat SSL valide pour protéger les données en transit.

Administration
Administration
Administration