Mise à niveau MySQL 8.0 → 8.4 LTS (in-place)
MySQLNiveau: IntermédiaireDurée: 60–120 min (selon le volume de données)Met à niveau un MySQL 8.0 installé vers la 8.4 LTS sur le même serveur (in-place) : serveur unique, source + replicas (replicas d'abord, source en dernier) ou InnoDB Cluster (Router → Shell → metadata → secondaries un par un → primary en dernier). Comprend sur chaque serveur la vérification préalable util.checkForServerUpgrade, les variables supprimées en 8.4 et mysql_native_password désactivé par défaut, un point de retour par copie à froid, la vérification et un runbook de retour à la 8.0. Le downgrade n'étant pas pris en charge, le seul retour possible passe par la copie prise avant la mise à niveau. Pour migrer vers de nouveaux serveurs (dump/load), utilisez le mode « Migrer vers un autre serveur » du guide de sauvegarde logique.
Topologie: 1 serveur, source + replicas ou InnoDB Cluster (3+ membres + serveurs MySQL Router)
Avant de commencer
- Le ou les serveurs sont sur la dernière version mineure de MySQL 8.0 (8.0.4x), installée depuis le dépôt MySQL officiel. Le passage direct de 8.0 à 8.4 est pris en charge ; le passage direct de 5.7 à 8.4 n'est pas pris en charge (passez d'abord en 8.0).
- Il y a sous … un espace libre égal à la taille du répertoire de données + binlogs (pour la copie à froid).
- Il existe une sauvegarde récente réussie (XtraBackup 8.0 ou mysqldump) et un test de restauration. Après la mise à niveau, il faut passer à XtraBackup 8.4 (la version 8.0 ne peut pas sauvegarder un serveur 8.4).
- La prise en charge de MySQL 8.4 et de caching_sha2_password par l'application et les pilotes clients (JDBC, PHP mysqlnd, Python…) a été vérifiée en environnement de test.
- La fenêtre de maintenance est validée… ; le trafic de lecture peut baisser car les replicas sont mis à niveau un par un, et les écritures sont interrompues pendant la mise à niveau de la source….
- La rétention des binlogs sur la source est plus longue que la durée de mise à niveau des replicas (les binlogs encore nécessaires aux replicas arrêtés ne doivent pas être purgés).
- Le cluster est sain : tous les membres ONLINE, mode single-primary ; le premier membre du formulaire est le primary actuel. Ne commencez pas la mise à niveau tant qu'il y a un membre RECOVERING ou un état OK_PARTIAL / OK_NO_TOLERANCE.
- Le compte d'administration du cluster … peut se connecter à tous les membres sur le port … et son mot de passe est connu (MySQL Shell le demande à chaque connexion).
- Sur les serveurs Router, MySQL Router est installé depuis le dépôt MySQL officiel et tourne comme service systemd (mysqlrouter). Si le trafic applicatif passe par plusieurs Routers, ils sont mis à niveau un par un.
- L'application se connecte uniquement via Router (une application connectée directement au nom d'un membre ne peut plus écrire lorsque le rôle de primary change).
Phases du guide
- Vérification préalable — État actuel · Ajouter le dépôt 8.4 et installer MySQL Shell 8.4 · Exécuter l'Upgrade Checker · Rechercher les variables supprimées dans la configuration · Migrer les comptes mysql_native_password
- Vérification préalable InnoDB Cluster — Enregistrer l'état du cluster et les Routers · Vérifier le besoin de mise à niveau de la metadata (dryRun)
- Mise à niveau de la metadata — Exécuter dba.upgradeMetadata()
- Préparation du changement de primary — Vérifier que les secondaries sont en 8.4 et ONLINE
- Vérification finale de l'InnoDB Cluster — Vérifier l'état étendu du cluster · Rendre le rôle de primary au premier membre
- Après la mise à niveau — Contrôler la réplication (…) · Passer XtraBackup en 8.4 et prendre une nouvelle sauvegarde complète · Migrer les comptes mysql_native_password (solution définitive) · Décider de la suppression de la copie de retour arrière
- Retour arrière (retour en 8.0) — Retour arrière : arrêter la 8.4, mettre de côté le répertoire de données · Retour arrière : arrêter la 8.4, mettre de côté le répertoire de données · Retour arrière : revenir au logiciel 8.0 · Retour arrière : revenir au logiciel 8.0 · Retour arrière : restaurer la copie à froid · Retour arrière : restaurer la copie à froid …