*Cube-Host– services cloud complets!

Migration de base de données MySQL : une méthode sécurisée étape par étape

MySQL database migration a step-by-step and secure method

Introduction

La migration d’une base de données MySQL est une opération critique qui a des répercussions sur l’intégrité des données, la stabilité des applications et les fonctions de restauration. Nous vous expliquons comment utiliser mysqldump, migrer des utilisateurs, préserver l’intégrité des données et tenir compte des subtilités des différentes versions de MySQL.

Quand une migration est-elle nécessaire ?

  • Transfert vers un nouvel hébergeur ou un nouveau serveur.
  • Mise à jour de la version MySQL.
  • Configuration de la réplication ou de la répartition de la charge.
  • Consolidation des bases de données.

Risques et comment les minimiser

  • Incompatibilité des versions : différences dans sql_mode, default_authentication_plugin, encodages (utf8mb4_unicode_ci vs utf8mb4_0900_ai_ci).
  • Perte d’autorisations : les utilisateurs sont enregistrés séparément et doivent être transférés manuellement.
  • Temps d’arrêt de l’application lors de la migration sans réplication.
  • Dump incohérent : –single-transaction ne fonctionne qu’avec InnoDB ; pour MyISAM, FLUSH TABLES WITH READ LOCK est nécessaire.

Plan étape par étape pour la migration

Étape 1. Créer un dump

Mot-clé principal (1) : migration de base de données MySQL.

Créer un dump en conservant la logique :

				
					mysqldump -u root -p --single-transaction --routines --triggers --events olddb > dump.sql
				
			
  • –single-transaction réduit les verrous (fonctionne uniquement pour InnoDB).
  • –routines, –triggers, –events conserve les procédures, les déclencheurs et les planificateurs d’événements.

Étape 2. Transférez le dump

Transférez-le via SCP ou rsync via un canal sécurisé. Vérifiez l’intégrité du fichier :

				
					sha256sum dump.sql
				
			

Étape 3. Création de la base de données

Sur le nouveau serveur :

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

Remarque : utf8mb4_unicode_ci peut différer de utf8mb4_0900_ai_ci dans MySQL 8.0.

Étape 4. Importez le dump.

				
					mysql -u root -p newdb < dump.sql
				
			

Étape 5. Transférer les utilisateurs et les autorisations

  • Exécutez SHOW GRANTS FOR « user »@“host” et transférez CREATE USER/GRANT.
  • Dans MySQL 8.0, vous pouvez utiliser mysqlpump –users.
  • Tenez compte de default_authentication_plugin (dans 8.0, il s’agit de caching_sha2_password).

Étape 6. Vérification de l’intégrité

  • Comparez le nombre de lignes dans les tables.
  • Vérifiez les sommes de contrôle (pt-table-checksum).
  • Testez les requêtes SQL importantes.

Étape 7. Minimiser les temps d’arrêt

Pour les systèmes critiques, utilisez la réplication :

  1. Configurez le nouveau serveur en tant qu’esclave.
  2. Attendez la synchronisation.
  3. Passez du maître à l’esclave sans temps d’arrêt.

Liste de contrôle avant la migration

Unité

Que faut-il vérifier ?

Versions

Compatibilité MySQL/MariaDB

codage

Assurez-vous que utf8mb4 et les tris sont corrects.

Mode SQL

Comparer sql_mode

droits

Vérifier GRANT

Plugins

default_authentication_plugin

réplication

Vérifier le retard

Rollback

  • Créez une copie de sauvegarde de l’ancien serveur.
  • Pour effectuer un rollback, vous pouvez démarrer l’ancien serveur en tant qu’esclave, puis revenir en arrière.

Conclusion

La migration d’une base de données MySQL est sûre si vous tenez compte des versions, utilisez des sauvegardes et vérifiez l’intégrité. La réplication permet d’éviter les temps d’arrêt et les sauvegardes vous permettent d’effectuer rapidement une restauration. La migration d’une base de données MySQL nécessite une approche minutieuse en termes d’autorisations, de tri et de paramètres.