Déploiement
Déploiement • Chapitre 7 : Déploiement et connexion à une base de données

Importation et exportation des données

Maîtrisez les commandes fondamentales d'export (dump) et d'import (restore) en ligne de commande pour migrer vos données locales vers la production sans perte ni corruption.

📤
Outil mysqldump

Génération d'un fichier SQL complet contenant la structure (DDL) et les données (DML).

📥
Restauration Directe

Injection fluide des tables via la redirection standard du shell Linux (<).

🗜️
Compression Gzip

Réduction de 80% de la taille de l'archive SQL pour un transfert réseau accéléré.

🔒
Transactions Cohérentes

Option --single-transaction garantissant un export figé sans bloquer les visiteurs.

dump-and-restore.sh
# 1. Exporter la base de données complète avec compression à la volée
$ mysqldump -u app_user -p --single-transaction --quick app_production | gzip > backup_2026_10_11.sql.gz
# Taille du fichier généré : 12 Mo (au lieu de 95 Mo en texte brut)

# 2. Transférer l'archive de façon sécurisée vers un autre serveur via SCP
$ scp backup_2026_10_11.sql.gz debian@198.51.100.42:/backups/

# 3. Restaurer l'archive sur le serveur distant en décompressant à la volée
$ gunzip < /backups/backup_2026_10_11.sql.gz | mysql -u app_user -p app_production

# 4. Vérifier l'intégrité : compter le nombre d'utilisateurs restaurés
$ mysql -u app_user -p -e "SELECT COUNT(*) FROM app_production.users;"

Guide Approfondi & Architecture Système

1. L'Option Magique : '--single-transaction'

Par défaut, un simple mysqldump sur une base active peut verrouiller vos tables en écriture le temps de l'export : vos visiteurs reçoivent des erreurs de timeout.
La solution professionnelle : L'option --single-transaction utilise les propriétés ACID du moteur InnoDB. Elle crée un instantané photographique cohérent des données dans une transaction isolée, sans jamais bloquer les requêtes des internautes sur votre site en direct !

2. Attention aux Encodages lors de l'Importation

Assurez-vous toujours que le client MySQL qui importe utilise le même jeu de caractères que l'export :
mysql -u app_user -p --default-character-set=utf8mb4 app_production < backup.sql

Tableau des Options Clés de la Commande mysqldump

OptionRôle TechniquePourquoi l'utiliser en Production
--single-transactionExécute le dump dans une transaction isoléeÉvite de bloquer les tables et de couper le site
--quickLit les lignes une par une sans charger toute la table en RAMEmpêche le serveur de saturer sa mémoire vive
--no-dataExporte uniquement la structure des tables (schéma)Idéal pour recréer une base vierge en pré-production
--routines --triggersInclut les procédures stockées et déclencheursGarantit une restauration 100% fidèle de la logique BD