Tous les produits
Search
Centre de documentation

ApsaraDB RDS:Mettre à niveau la version majeure de la base de données

Dernière mise à jour :Aug 26, 2026

ApsaraDB RDS for MySQL propose deux méthodes pour mettre à niveau la version majeure de la base de données. Vous pouvez effectuer la mise à niveau directement depuis la console. Vous pouvez également acheter une nouvelle instance ApsaraDB RDS for MySQL exécutant une version plus récente et utiliser une tâche de migration de données Data Transmission Service (DTS) pour migrer les données de l'instance d'origine vers la nouvelle. Ce processus permet de mettre à niveau indirectement la version de la base de données.

Remarque

ApsaraDB RDS for MySQL ne prend pas en charge le rétrogradage direct de la version de la base de données depuis la console. Vous pouvez acheter une instance RDS exécutant une version antérieure et utiliser DTS pour migrer les données de l'instance avec la version plus récente vers l'instance avec la version antérieure. Après avoir vérifié que la migration a réussi, vous pouvez libérer l'instance avec la version plus récente.

Sélectionner une méthode de mise à niveau

La Méthode 1 : Mettre à niveau directement la version de la base de données dans la console et la Méthode 2 : Mettre à niveau la version de la base de données à l'aide de DTS prennent toutes deux en charge les chemins de mise à niveau MySQL suivants : de MySQL 5.5 à 5,6, de 5,6 à 5,7, de 5,7 à 8,0 et de 8,0 à 8,4. Avant de mettre à niveau votre base de données, sélectionnez la méthode appropriée en fonction des informations ci-dessous :

  • Si votre instance appartient à l'une des quatre catégories suivantes et que sa configuration répond aux exigences correspondantes, utilisez la Méthode 1 : Mettre à niveau directement la version de la base de données dans la console.

    Remarque

    Les instances Serverless ne prennent pas en charge les mises à niveau directes depuis la console. Vous devez utiliser la Méthode 2 : Mettre à niveau la version de la base de données à l'aide de DTS.

    Cluster Edition (ESSD et disque haute performance)

    • Restriction liée à la réplication de groupe : Vous ne pouvez pas mettre à niveau les instances Cluster Edition qui utilisent MySQL Group Replication (MGR).

    • Restriction liée au proxy de base de données (le cas échéant) : Pour les mises à niveau de 5,7 vers 8.0, la version mineure du proxy de base de données doit être 1.13.41 ou ultérieure. Pour les mises à niveau de 8,0 vers 8.4, la version mineure du proxy de base de données doit être 2.25.11 ou ultérieure.

    • Restriction liée à l'état de l'instance : L'état de l'instance doit être Running, et les nœuds principal et secondaire doivent être sains et sans délai de réplication.

    • Restriction liée au moteur : La base de données et toutes ses tables doivent utiliser le moteur de stockage InnoDB.

    • L'instance ne doit pas utiliser un type d'instance obsolète.

    High-availability Edition (ESSD et disque haute performance)

    • Restriction liée au proxy de base de données (le cas échéant) : Pour les mises à niveau de 5,7 vers 8.0, la version mineure du proxy de base de données doit être 1.13.41 ou ultérieure. Pour les mises à niveau de 8,0 vers 8.4, la version mineure du proxy de base de données doit être 2.25.11 ou ultérieure.

    • Restriction liée à l'état de l'instance : L'état de l'instance doit être Running, et les nœuds principal et secondaire doivent être sains et sans délai de réplication.

    • Restriction liée au moteur : La base de données et toutes ses tables doivent utiliser le moteur de stockage InnoDB.

    • L'instance ne doit pas utiliser un type d'instance obsolète.

    High-availability Edition (disque local haute performance)

    • Restriction liée au chiffrement : La fonctionnalité de chiffrement transparent des données (TDE) doit être désactivée. Une fois le TDE activé, il ne peut pas être désactivé. Si le TDE est activé sur votre instance, vous devez utiliser la Méthode 2 : Mettre à niveau la version de la base de données à l'aide de DTS.

    • Restriction liée au proxy de base de données (le cas échéant) : Pour les mises à niveau de 5,7 vers 8.0, la version mineure du proxy de base de données doit être 1.13.41 ou ultérieure. Pour les mises à niveau de 8,0 vers 8.4, la version mineure du proxy de base de données doit être 2.25.11 ou ultérieure.

    • Restriction liée à l'état de l'instance : L'état de l'instance doit être Running, et les nœuds principal et secondaire doivent être sains et sans délai de réplication.

    • Restriction liée au nombre de tables : Le nombre de tables ne peut pas dépasser 1 million.

    • Restriction liée au moteur : La base de données et toutes ses tables doivent utiliser le moteur de stockage InnoDB.

    • Restriction liée au type d'instance : La version de la base de données après la mise à niveau doit prendre en charge les types d'instance d'origine des instances principales et en lecture seule. Les instances ne doivent pas utiliser un type d'instance obsolète. Pour plus d'informations, consultez les Types d'instance principale ApsaraDB RDS for MySQL.

    Basic Edition (ESSD et disque haute performance)

    • Restriction liée à l'état de l'instance : L'état de l'instance doit être Running.

    • Restriction liée au moteur : La base de données et toutes ses tables doivent utiliser le moteur de stockage InnoDB.

    • L'instance ne doit pas utiliser un type d'instance obsolète.

  • Si votre instance n'appartient à aucune des quatre catégories précédentes ou si le TDE est activé, utilisez la Méthode 2 : Mettre à niveau la version de la base de données à l'aide de DTS.

  • Si votre instance appartient à l'une des quatre catégories précédentes mais que sa configuration ne répond pas aux exigences, vous pouvez modifier la configuration comme décrit dans le tableau suivant. Ensuite, vous pouvez utiliser soit la Méthode 1 : Mettre à niveau directement la version de la base de données dans la console, soit la Méthode 2 : Mettre à niveau la version de la base de données à l'aide de DTS.

    Problème

    Solution

    L'état de l'instance n'est pas Running ; par exemple, il est Restarting.

    Attendez que la tâche en cours se termine avant de mettre à niveau la version de la base de données.

    Le nombre de tables sur une instance High-availability Edition avec un disque local haute performance dépasse 1 million.

    Supprimez les tables redondantes avant la mise à niveau.

    Certaines bases de données ou tables n'utilisent pas le moteur InnoDB.

    Exécutez la commande ALTER TABLE <table_name> engine=InnoDB; pour passer au moteur InnoDB.

    L'instance utilise un type d'instance obsolète.

    Mettez à niveau le type d'instance avant de mettre à niveau la version de la base de données. Pour plus d'informations, consultez la rubrique Modifier la configuration.

    La version mineure du proxy de base de données ne répond pas aux exigences.

    Mettez à niveau la version mineure du proxy de base de données vers la version 1.13.41 ou ultérieure. Pour plus d'informations, consultez la rubrique Mettre à niveau la version mineure du moteur d'un proxy de base de données.

    Le type de stockage de l'instance est SSD standard.

    Tout d'abord, mettez à niveau le SSD standard vers un SSD entreprise (ESSD), puis mettez à niveau la version de la base de données.

Pour mettre à niveau la version majeure d'autres moteurs de base de données, consultez les rubriques suivantes :

Méthode 1 : Mettre à niveau directement la version de la base de données dans la console

Préparatifs

  1. Comprendre les différences et les avantages de la nouvelle version

  2. Comprendre le processus de mise à niveau et son impact

    • Restriction d'écart de version : Vous ne pouvez pas effectuer de mise à niveau directe entre versions majeures éloignées. Par défaut, l'instance est mise à niveau vers la dernière version mineure de la version majeure cible. Par exemple, vous ne pouvez pas mettre à niveau directement une instance de MySQL 5.6 vers MySQL 8.0. Vous devez d'abord la mettre à niveau vers MySQL 5.7, puis vers MySQL 8.0.

    • Restriction de rétrogradage : Vous ne pouvez pas rétrograder directement la version depuis la console. Vous pouvez acheter une instance RDS exécutant une version antérieure et utiliser DTS pour migrer les données de l'instance avec la version plus récente vers l'instance avec la version antérieure. Après avoir vérifié que la migration a réussi, vous pouvez libérer l'instance avec la version plus récente.

    • Processus de mise à niveau pour les instances avec un disque local haute performance : Le système met d'abord à niveau l'instance secondaire. Une fois la mise à niveau terminée, un basculement primaire/secondaire se produit. Ensuite, le système met à niveau l'instance principale. La mise à niveau entraîne une interruption de service de 15 secondes. Nous vous recommandons d'effectuer la mise à niveau pendant les heures creuses.

    • Processus de mise à niveau pour les instances avec un ESSD : Le système crée un nouveau nœud et effectue la mise à niveau sur ce nouveau nœud. Une fois le nouveau nœud mis à niveau, le système bascule les connexions vers celui-ci. La mise à niveau entraîne une interruption de service de 15 secondes. Nous vous recommandons d'effectuer la mise à niveau pendant les heures creuses.

  3. Vérifier les configurations de l'instance et de la base de données

    • Vérifier les mots-clés réservés : Vérifiez les fonctions définies par l'utilisateur pour vous assurer qu'elles n'utilisent aucun mot-clé réservé.

    • Vérifier les sauvegardes complètes : Vérifiez si une sauvegarde complète des données a été créée avec succès au cours de la dernière semaine. Si ce n'est pas le cas, effectuez une sauvegarde complète des données.

    • Vérifier le mécanisme de reconnexion automatique : Pendant la mise à niveau de la base de données, RDS effectue un basculement d'instance. Nous vous recommandons d'effectuer la mise à niveau pendant les heures creuses ou de vous assurer que votre application dispose d'un mécanisme de reconnexion automatique. Pour plus d'informations sur l'impact d'un basculement d'instance, consultez la rubrique Impact d'un basculement d'instance.

    • Vérifier l'espace de stockage disponible : Assurez-vous de disposer de suffisamment d'espace disque libre avant la mise à niveau. Nous vous recommandons de réserver au moins 10 Go.

    • Ajuster la politique de nettoyage des journaux : Augmentez la période de rétention et le pourcentage maximal d'utilisation du stockage pour les journaux locaux. Pour plus d'informations, consultez la rubrique Modifier la stratégie des journaux locaux.

    • Sauvegarder les paramètres de l'instance : Pour garantir la stabilité et les performances de la nouvelle version de MySQL, RDS déprécie certains paramètres de l'ancienne version. Vous ne pourrez plus afficher ni modifier ces paramètres après la mise à niveau. Avant d'effectuer une mise à niveau majeure, sauvegardez les enregistrements de modification des paramètres pertinents pour les opérations et audits futurs.

    • Pour les mises à niveau de 5,6 vers 5,7, de 5,7 vers 8,0 ou de 8,0 vers 8,4, vous devez effectuer les vérifications supplémentaires suivantes :

      Mise à niveau de 5,6 vers 5,7

      Vérifier les index full-text et les informations de version : Pour les bases de données sur les instances RDS for MySQL 5.6 dont la version mineure est antérieure à 20221130, les index full-text sont créés dans le tablespace système. La mise à niveau vers la version 5.7 risque d'endommager le tablespace. Si votre instance exécute une version mineure antérieure, mettez-la d'abord à niveau vers la dernière version mineure de RDS for MySQL 5.6, puis mettez à niveau la version majeure de la base de données. Pour plus d'informations, consultez la FAQ.

      Mise à niveau de 5,7 vers 8,0

      • Vérifier la compatibilité des fonctionnalités : Si les procédures stockées, déclencheurs, vues ou fonctions de votre base de données utilisent des fonctionnalités non prises en charge par MySQL 8.0, modifiez-les avant la mise à niveau. Sinon, la mise à niveau échouera.

      • Vérifier les dépendances des tables système : Vérifiez si vos services dépendent des tables système de MySQL 5.7 (tables dans les bases de données sys, mysql, information_schema et performance_schema). Certaines tables système de MySQL 5.7 sont modifiées lors de la mise à niveau vers 8,0. Par exemple, des tables peuvent être supprimées, renommées ou voir leur schéma modifié. Si vos services dépendent de ces tables, ils risquent de rencontrer des erreurs.

      • Vérifier la compatibilité des types de données : RDS for MySQL 8.0 ne prend plus en charge certains types de données des versions antérieures. Si une table contient des champs avec des types de données non pris en charge dans MySQL 8.0, vous devez résoudre ce problème en exécutant REPAIR TABLE ou en effectuant une exportation et une importation logiques avant la mise à niveau. Pour plus d'informations, consultez la rubrique Preparing Your Installation for Upgrade.

      • Vérifier les valeurs comment : Les versions mineures de MySQL 8.0 à partir de 20221231 introduisent le paramètre loose_upgrade_clear_invalid_comment. Lorsque ce paramètre est défini sur ON (valeur par défaut), les caractères illisibles dans les commentaires des tables, champs et index sont automatiquement effacés lors de la mise à niveau pour éviter tout échec. Par conséquent, avant la mise à niveau, vérifiez si les valeurs comment dans les tables de votre base de données contiennent des caractères illisibles. Si c'est le cas, le comment sera effacé.

      • Vérifier les procédures stockées : Si les procédures stockées ou les fonctions de votre base de données contiennent des caractères illisibles, corrigez-les avant la mise à niveau pour éviter tout échec.

      • Vérifier les types de données temporelles de MySQL 5.5 et antérieures : Si votre base de données contient des tables avec des types de données temporelles de MySQL 5.5 ou antérieures, reconstruisez les tables avant de mettre à niveau vers MySQL 8.0 pour éviter tout échec.

        • Exécutez les instructions SQL suivantes pour vérifier si votre instance de base de données contient des tables avec des types de données temporelles de MySQL 5.5 ou antérieures :

          # Show old time data types.
          SET SESSION show_old_temporals= ON;
          
          # Query for tables that contain old time data types.
          SELECT TABLE_NAME, COLUMN_NAME, COLUMN_TYPE FROM information_schema.columns WHERE COLUMN_TYPE IN ("time /* 5.5 binary format */ ", "timestamp /* 5.5 binary format */", "datetime /* 5.5 binary format */ ");
        • Si une table contient des types de données temporelles de MySQL 5.5 ou antérieures, vous pouvez exécuter la commande suivante pour reconstruire le schéma de la table :

          # Rebuild the table.
          ALTER TABLE <table_name> FORCE;

      Mise à niveau de 8,0 vers 8,4

      • Vérifier la compatibilité des fonctionnalités : MySQL 8.4 ne prend plus en charge certaines fonctionnalités héritées, telles que Group Replication (MGR). Si MGR est activé sur l'instance, arrêtez la réplication de groupe et effacez la configuration associée avant la mise à niveau. Sinon, la mise à niveau ne pourra pas procéder.

      • Vérifier la compatibilité des tables, index et métadonnées : Vérifiez si l'instance contient des moteurs de stockage, des index full-text, des tablespaces abandonnés, des clés étrangères sur des tables partitionnées, des noms de colonnes de vue ou des contraintes de clé étrangère trop longs, ou des index SPATIAL ou RTREE incompatibles avec MySQL 8.4. Si un problème est détecté, modifiez le schéma de la table ou supprimez les index concernés avant la mise à niveau, et recréez-les si nécessaire après la mise à niveau. De plus, les tables qui utilisent un champ FLOAT ou DOUBLE comme colonne AUTO_INCREMENT doivent également être modifiées à l'avance.

      • Vérifier la topologie de l'instance et les conditions de mise à niveau : Vérifiez si l'état de santé des nœuds principal et secondaire, le délai de réplication, le nombre et les types d'instances en lecture seule et d'instances de secours en lecture seule, le type de connexion de l'instance, les tâches inachevées, le type d'instance de la version cible et la version MaxScale répondent aux exigences de mise à niveau. Les éléments de vérification varient selon le type d'instance : les instances à disque local ont des vérifications supplémentaires de la topologie des instances en lecture seule, et les instances à disque cloud ont des vérifications du type de stockage et de l'environnement cloud.

      • Vérifier la compatibilité des paramètres, de l'authentification et de la connexion : MySQL 8.4 supprime certains paramètres et configurations d'authentification de la version 8.0, et le processus de mise à niveau filtre ou convertit automatiquement les paramètres incompatibles. MySQL 8.4 ne prend plus en charge TLSv1 ou TLSv1.1. Le système ajuste automatiquement le côté serveur tls_version, mais les clients qui utilisent les anciens protocoles TLS ne pourront toujours pas se connecter après la mise à niveau. Confirmez à l'avance que vos clients prennent en charge TLSv1.2 ou TLSv1.3. Certains comportements par défaut de l'authentification, des autorisations et des paramètres changent également. Avant la mise à niveau, assurez-vous que la connexion des comptes, les autorisations et les performances du service ne sont pas affectées.

  4. Tests et simulation avant la mise à niveau

    • Test de syntaxe : Avant la mise à niveau, créez une nouvelle instance RDS avec la version ultérieure pour tester la compatibilité syntaxique. Cela permet d'éviter les problèmes liés à la non-prise en charge de la syntaxe ou des fonctionnalités de l'ancienne version après la mise à niveau.

    • Simulation de mise à niveau : Avant la mise à niveau, clonez l'instance d'origine et utilisez l'instance clonée pour tester la mise à niveau. Après avoir confirmé que toutes les fonctionnalités fonctionnent comme prévu, mettez à niveau l'instance d'origine.

  5. Remarques après la mise à niveau

    • Restaurer une instance vers l'ancienne version : Vous pouvez utiliser une sauvegarde sur disque cloud de l'ancienne version pour restaurer une instance vers cette version. Cette opération n'est pas prise en charge pour les instances avec des disques locaux haute performance.

    • Restaurer une instance vers la nouvelle version : Vous ne pouvez pas utiliser les jeux de sauvegarde de l'ancienne version pour restaurer une instance vers la nouvelle version. Pour effectuer une restauration, utilisez un jeu de sauvegarde créé après la mise à niveau de l'instance.

Procédure

Sélectionnez une méthode de mise à niveau en fonction du scénario de mise à niveau :

Méthode de mise à niveau

Scénario de mise à niveau

Effectuer un précontrôle, puis mettre à niveau

  • High-availability Edition (disque local haute performance) : Mise à niveau de 5,6 vers 5,7 ou de 5,7 vers 8.0.

  • High-availability Edition (ESSD ou disque haute performance) et Cluster Edition (ESSD ou disque haute performance) : Mise à niveau de 5,7 vers 8.0.

  • Toutes les éditions : Mise à niveau de 8,0 vers 8,4.

Mise à niveau directe

  • High-availability Edition avec disques locaux haute performance : Mise à niveau de 5,5 vers 5.6.

  • Basic Edition (ESSD ou disque haute performance) : Mise à niveau de 5,7 vers 8,0.

Effectuer un précontrôle, puis mettre à niveau

  1. Accédez à la page Instances. Dans la barre de navigation supérieure, sélectionnez la région où se trouve votre instance. Ensuite, cliquez sur l'ID de l'instance.

  2. Dans le volet de navigation de gauche, cliquez sur Major Version Upgrade pour accéder à la page Upgrade Check.

  3. Dans la liste déroulante Select upgrade version, sélectionnez la version cible et cliquez sur Create upgrade check report. Pour plus d'informations sur le rapport, consultez la rubrique Description du rapport de vérification de mise à niveau majeure.

  4. Une fois la vérification terminée et après avoir confirmé l'absence de risques, accédez à l'onglet Upgrade Instance.

  5. Dans la liste déroulante Select upgrade version, sélectionnez la version cible et cliquez sur Upgrade Instance.

  6. Dans la boîte de dialogue Major Engine Version Upgrade, confirmez la version cible, sélectionnez un Switching Time, puis cliquez sur Upgrade.

Mise à niveau directe

  1. Accédez à la page Instances. Dans la barre de navigation supérieure, sélectionnez la région où se trouve votre instance. Ensuite, cliquez sur l'ID de l'instance.

  2. Dans la section Basic Information > Configuration Information, cliquez sur Upgrade Major Engine Version.

    Remarque

    Si cette option n'est pas disponible, vérifiez si votre instance répond aux exigences de mise à niveau.

  3. Dans la boîte de dialogue qui s'affiche, sélectionnez Switch Now ou Switch Within Maintenance Window, puis cliquez sur OK.

    • Switch Now : Démarre la mise à niveau immédiatement.

    • Switch Within Maintenance Window : La mise à niveau s'exécute dans la fenêtre de maintenance spécifiée. Vous pouvez également cliquer sur Settings à côté de Maintenance Window pour modifier rapidement la fenêtre de maintenance.

    Remarque

    Pendant la mise à niveau, l'état de l'instance est Upgrading Version.

Méthode 2 : Mettre à niveau la version de la base de données à l'aide de DTS

Pour les instances qui ne prennent pas en charge une mise à niveau directe depuis la console, créez une nouvelle instance avec une version ultérieure de la base de données. Utilisez ensuite une tâche de migration de données DTS pour migrer les données de l'instance d'origine vers la nouvelle instance. Cette approche permet de mettre à niveau indirectement la version de la base de données. Le processus comprend les étapes suivantes :

  1. Créer une nouvelle instance

  2. Migrer les données vers la nouvelle instance

  3. Libérer l'instance d'origine

Exemple : Vous disposez d'une instance MySQL 5.7 avec TDE activé, qui ne peut pas être mise à niveau directement depuis la console. Dans ce cas, créez une nouvelle instance exécutant MySQL 8.0, migrez les données de l'instance d'origine vers la nouvelle instance, puis libérez l'instance d'origine. Cette procédure met à niveau indirectement la version de la base de données.

Important

Après une migration de données entre versions différentes, effectuez des tests de compatibilité et surveillez l'instance pendant une certaine période. Une fois que vous avez confirmé que tout fonctionne normalement, libérez l'instance d'origine.

Annexe 1 : Avantages de la mise à niveau de MySQL 8.0 vers MySQL 8.4

  • Stabilité à long terme améliorée. MySQL 8.4 est une version LTS (Long Term Support) adaptée à une utilisation prolongée dans les environnements de production. Les versions ultérieures 8,4.x se concentrent sur la stabilité, les correctifs de sécurité et le maintien de la compatibilité.

  • Authentification renforcée. Prend en charge l'authentification WebAuthn/FIDO2. L'édition Enterprise permet d'utiliser des clés de sécurité, la biométrie et d'autres méthodes d'authentification. Sous Windows, l'authentification SASL LDAP/GSSAPI/Kerberos est prise en charge.

  • Fonctionnalités GTID améliorées. Prend en charge les GTID tagués. Vous pouvez utiliser le format UUID:TAG:NUMBER pour distinguer différents domaines métier, opérations administratives ou opérations sur les données, et le privilège TRANSACTION_GTID_TAG offre un contrôle d'accès.

  • Disponibilité de la réplication améliorée. L'appliqueur multithread prend en charge SQL_AFTER_GTIDS, ce qui permet à la réplication parallèle de se poursuivre lorsqu'un réplica atteint un ensemble GTID spécifié.

  • Récupération du journal de relais améliorée. Permet de nettoyer les transactions incomplètes à la fin du journal de relais ainsi que les fichiers résiduels associés, réduisant ainsi le risque de récupération dû à une incohérence du journal de relais après un arrêt anormal.

  • Opérations Group Replication améliorées. Au sein de la série LTS 8.4, les membres de groupe interversions et les rétrogradations sur place sont pris en charge, l'attente des opérations DDL et DCL lors d'un basculement primaire est plus complète, et le pré-nettoyage des informations d'authentification est pris en charge en mode primaire unique pour réduire les risques liés à la mémoire et au basculement.

  • Statistiques améliorées. Les histogrammes prennent en charge le contrôle de mise à jour automatique ou manuel, ce qui améliore la contrôlabilité de la maintenance des statistiques de l'optimiseur.

  • Diagnostic du plan d'exécution amélioré. EXPLAIN FORMAT=JSON prend en charge la sélection de la version du format, EXPLAIN FORMAT=JSON INTO écrit la sortie dans une variable utilisateur, et EXPLAIN FOR SCHEMA et FOR DATABASE sont pris en charge, facilitant ainsi le diagnostic SQL entre schémas.

  • Validation des certificats TLS renforcée. Prend en charge une validation plus stricte des certificats TLS pour améliorer la sécurité des connexions chiffrées.

  • Clone amélioré. Au sein de la même série majeure ou mineure, l'opération de clone ne nécessite plus une correspondance exacte de la version ponctuelle, ce qui facilite l'initialisation, la récupération et la mise à l'échelle des instances entre les versions 8.4.x.

  • Audit et pare-feu améliorés. Enterprise Firewall prend en charge les rechargements périodiques du cache et les schémas d'objets internes personnalisés pour une plus grande flexibilité opérationnelle.

  • Migration de la gestion des clés améliorée. Prend en charge la migration d'un composant keyring vers un plugin keyring, améliorant ainsi la flexibilité pour les scénarios de migration de chiffrement et de compatibilité.

  • Observabilité de la mise à niveau améliorée. Le répertoire de données conserve un fichier mysql_upgrade_history au format JSON qui enregistre l'historique d'installation et de mise à niveau à des fins d'audit et de dépannage.

  • Évolution SQL et de l'optimiseur améliorée. Ajoute des mots-clés tels que TABLESAMPLE, QUALIFY et PARALLEL pour fournir une base aux futures extensions SQL et de l'optimiseur.

Annexe 2 : Avantages de la mise à niveau de MySQL 5.7 vers MySQL 8.0

  • Améliore la sécurité et offre une plus grande flexibilité dans la gestion des comptes.

  • Prend en charge la création et la gestion de groupes de ressources.

  • Renforce les fonctionnalités du moteur de stockage InnoDB.

  • Ajoute la prise en charge de nouveaux jeux de caractères, types de données, syntaxes, nouveaux verrous de sauvegarde et indicateurs optimizer_switch.

  • Améliore les fonctionnalités JSON et XML.

  • Renforce les fonctionnalités de l'optimiseur.

  • Améliore les performances de réplication.

  • Prend en charge la création d'index multivalués et l'optimisation par poussée de conditions dérivées.

  • Prend en charge la lecture des tables d'octroi MySQL.

  • Prend en charge le contrôle de l'allocation des ressources.

Annexe 3 : Avantages de la mise à niveau de MySQL 5.6 vers MySQL 5.7

  • Ajoute des fonctionnalités telles que la gestion des mots de passe, le verrouillage des comptes et les connexions chiffrées pour améliorer la sécurité de la base de données.

  • Prend en charge les opérations DDL en ligne, telles que le renommage d'un index à l'aide de RENAME INDEX.

  • Améliore l'évolutivité du moteur InnoDB et les performances des tables temporaires pour un chargement des données plus rapide.

  • Prend en charge JSON.

  • Prend en charge Index Condition Pushdown (ICP) pour les tables partitionnées et les nouveaux index spatiaux InnoDB.

  • Optimise la plupart des analyseurs, optimiseurs et modèles de coûts pour améliorer la maintenabilité, l'évolutivité et les performances de la base de données.

  • Élargit la gamme des jeux de caractères pris en charge, y compris le jeu de caractères GB18030 spécifié par la norme nationale chinoise.

  • Fournit le plugin d'analyseur de texte intégral ngram, qui prend en charge le chinois, le japonais et le coréen.

  • Optimise les threads de vidage source pour réduire la contention des verrous et augmenter le débit source.

  • Réduit considérablement le délai de réplication.

  • Ajoute la base de données système sys, qui fournit plusieurs métriques et réduit l'utilisation du stockage, améliorant ainsi considérablement l'utilisabilité de la base de données.

Annexe 4 : Différences de fonctionnalités entre MySQL 8.4 et MySQL 8.0

Remarque

Le tableau suivant répertorie uniquement certaines des différences importantes entre MySQL 8.4 et 8,0. Pour plus d'informations sur les autres différences, consultez les Notes de version MySQL.

Fonctionnalité

8,0

8,4

Authentification WebAuthn

Non prise en charge

Prend en charge l'authentification WebAuthn/FIDO2. L'édition Enterprise fournit un plugin côté serveur.

SASL LDAP sous Windows

Non pris en charge

Prend en charge l'authentification SASL LDAP/GSSAPI/Kerberos sous Windows.

Capacité cross-point-release du plugin Clone

Nécessite généralement une correspondance de version ponctuelle

Au sein de la même version majeure ou mineure, le clonage peut être effectué entre versions ponctuelles, par exemple entre 8.4.0 et 8.4.x.

GTID tagué

Non pris en charge

Prend en charge le format UUID:TAG:NUMBER.

Contrôle des privilèges de tag GTID

Non pris en charge

Ajoute le privilège TRANSACTION_GTID_TAG.

Appliqueur multithread avec SQL_AFTER_GTIDS

Utilisation limitée ; peut revenir à un seul thread

Pris en charge avec l'appliqueur multithread.

Assainissement de la récupération du journal de relais

Ancien comportement de récupération du journal de relais

Peut nettoyer les transactions incomplètes à la fin du journal de relais et les fichiers résiduels associés.

Compatibilité intra-groupe Group Replication 8.4.x

Non applicable

Au sein de la série LTS 8.4, les membres de groupe interversions et les rétrogradations sur place sont pris en charge.

Garbage collection de certification Group Replication

GC standard

Prend en charge la garbage collection de certification préemptive en mode primaire unique.

group_replication_set_as_primary() attente pour DDL et DCL

Couverture moindre

Attend que davantage d'opérations DDL et DCL soient terminées avant de changer le primaire.

Mise à jour automatique des histogrammes

Ne prend pas en charge AUTO UPDATE ni MANUAL UPDATE

Prend en charge le contrôle de mise à jour automatique ou manuel des histogrammes.

Version de sortie EXPLAIN FORMAT=JSON

Format JSON unique

Prend en charge explain_json_format_version pour sélectionner la version du format JSON.

EXPLAIN FORMAT=JSON INTO

Non pris en charge

Prend en charge l'écriture de la sortie JSON explain dans une variable utilisateur.

EXPLAIN FOR SCHEMA ou FOR DATABASE

Non pris en charge

Prend en charge l'explication des instructions pour un schéma spécifié.

Gestion des commentaires du client MySQL

Supprime les commentaires par défaut

Conserve les commentaires par défaut.

Validation des certificats TLS

Comportement plus permissif

Prend en charge la validation forcée des certificats TLS.

Rechargement du cache Enterprise Firewall

Recharge principalement au démarrage ou lors de la réinstallation du plugin

Prend en charge les rechargements périodiques.

Schéma de stockage Enterprise Firewall

Emplacement interne fixe

Prend en charge un schéma personnalisé.

Migration du composant keyring vers le plugin

Non prise en charge

Prend en charge la migration d'un composant keyring vers un plugin keyring.

Historique de mise à niveau

Utilise l'ancien mécanisme de fichier d'informations de mise à niveau

Le répertoire de données conserve un fichier mysql_upgrade_history au format JSON.

Annexe 5 : Différences de fonctionnalités entre MySQL 8.0 et MySQL 5.7

Remarque

Le tableau suivant répertorie uniquement certaines des différences importantes entre MySQL 8.0 et 5,7. Pour plus d'informations sur les autres différences, consultez les Notes de version MySQL.

Fonctionnalité

5,7

8,0

Syntaxe GRANT ... IDENTIFIED BY PASSWORD

Prise en charge

Non prise en charge

Fonction PASSWORD()

Prise en charge

Non prise en charge

Syntaxe FLUSH QUERY CACHE et RESET QUERY CACHE

Prise en charge

Non prise en charge

Paramètres pour la variable système SQL_MODE : DB2, MAXDB, MSSQL, MYSQL323, MYSQL40, ORACLE, POSTGRESQL, NO_FIELD_OPTIONS, NO_KEY_OPTIONS, NO_TABLE_OPTIONS

Prise en charge

Non prise en charge

Tri automatique par défaut pour la syntaxe GROUP BY

Prise en charge

Non prise en charge

Syntaxe contenant le mot-clé EXTENDED ou PARTITIONS

Prise en charge

Non prise en charge

Fonctions de chiffrement telles que ENCODE(), DECODE() et ENCRYPT()

Prise en charge

Non prise en charge

Fonctions liées à l'analyse spatiale

Prise en charge

Non prise en charge

Fonctions qui acceptaient auparavant des arguments de chaîne WKB ou de géométrie mais n'acceptent plus les arguments de géométrie

Prise en charge

Non prise en charge

Analyse de \N en tant que NULL

Prise en charge

Non prise en charge

Fonction PROCEDURE ANALYSE()

Prise en charge

Non prise en charge

Création de tables partitionnées à l'aide du moteur de stockage NDB

Prise en charge

Non prise en charge

Compression des tables temporaires à l'aide du moteur de stockage InnoDB

Prise en charge

Non prise en charge

Fonction JSON_APPEND()

Prise en charge

Non prise en charge

Prise en charge du placement des partitions de table dans un tablespace partagé

Prise en charge

Non prise en charge

Syntaxe ALTER TABLE ... UPGRADE PARTITIONING

Prise en charge

Non prise en charge

Annexe 6 : Différences de fonctionnalités entre MySQL 5.7 et MySQL 5.6

Remarque

Le tableau suivant répertorie uniquement certaines des différences importantes entre MySQL 5.7 et 5,6. Pour plus d'informations sur les autres différences, consultez les Notes de version MySQL.

Fonctionnalité

5,6

5,7

CREATE...AS SELECT en mode GTID

Prise en charge

Non prise en charge

Utilisation de tables temporaires dans les transactions en mode GTID

Prise en charge

Non prise en charge

Spécification d'une clé de partition dans une table partitionnée

Prise en charge

Non prise en charge

ENGINE_NO_CACHE syntaxe

Prise en charge

Non prise en charge

Index invisibles

Prise en charge

Non prise en charge

UPDATE non_affected_rows INSERT syntaxe

Prise en charge

Non prise en charge

Commandes liées au proxy

Utilise la méthode de commande SET

Utilise le mode Call Procedure

Moteurs TokuDB, Sphinx, RocksDB et Memory

Prise en charge

Non prise en charge

Fonction str_ord()

Prise en charge

Non prise en charge

Fonction raiseerror()

Prise en charge

Non prise en charge

OPTIMIZE TABLE table ASYNC

Prise en charge

Non prise en charge

ENGINE_NO_CACHE

Prise en charge

Non prise en charge

Table INFORMATION.TABLE_UTILIZATION

Prise en charge

Non prise en charge

Les colonnes requesting_thd_id et blocking_thd_id dans la table INFORMATION_SCHEMA.INNODB_LOCK_WAITS

Prise en charge

Non prise en charge

Table INFORMATION_SCHEMA.INNODB_RSEG

Prise en charge

Non prise en charge

Table INFORMATION_SCHEMA.INNODB_IO_STATUS

Prise en charge

Non prise en charge

Fonctionnalité de compression de colonne

Prise en charge

Non prise en charge

Cache du plan de requête

Prise en charge

Non prise en charge

Syntaxe Limit + Union

Les parenthèses ne sont pas requises.

Les parenthèses sont requises.

SHOW FULL PROCESSLIST syntaxe

Dans MySQL 5.7, les colonnes memory et query_memory sont supprimées du résultat.

max_statement_time et max_execution_time

Dans MySQL 5.7, max_statement_time est supprimé et seul max_execution_time est conservé.

RDS_SQL_MAX_AFFECTED syntaxe

Dans MySQL 5.7, vous ne pouvez plus utiliser RDS_SQL_MAX_AFFECTED pour limiter le nombre d'enregistrements affectés par une seule instruction UPDATE ou DELETE. Utilisez plutôt la variable rds_sql_max_affected_rows.

Ajustements de l'optimisation des performances de concurrence

Dans MySQL 5.7, les paramètres suivants ne sont plus pris en charge pour le contrôle de concurrence :

  • innodb_adaptive_tickets_algo

  • innodb_min_concurrency_tickets

  • rds_threads_running_ctl_mode

  • rds_threads_running_high_watermark

  • rds_filter_key_cmp_in_order

  • rds_reset_all_filter

  • rds_sql_delete_filter

  • rds_sql_select_filter

  • rds_sql_update_filter

  • rds_strict_concurrency

  • rds_thread_extra_concurrency

  • rds_strict_trx_idle_timeout

  • rds_sql_buf_read_bandwidth

  • rds_sql_buf_read_threshold_bytes

  • rds_sql_buf_write_bandwidth

  • rds_sql_buf_write_threshold_bytes

  • rds_sql_max_iops

Ajustements des variables de nombre de connexions

Les variables suivantes sont supprimées dans MySQL 5.7 :

  • extra_max_connections

  • rds_root_connections

  • rds_sysinfo_connections

  • rds_sysinfo_user_list

Ajustements liés à la réplication

  • Ajustements de compatibilité MySQL 5.7 :

    • La réplication entre bases de données activées pour GTID et non activées pour GTID n'est plus prise en charge.

    • sql_slave_skip_counter ne peut plus être utilisé avec les GTID.

    • CREATE .... SELECT n'est plus pris en charge.

  • Ajustements liés aux esclaves MySQL 5.7 :

    • SHOW SLAVE LAG n'est plus pris en charge.

    • SHOW SLAVE STATUS ne prend plus en charge les délais d'expiration.

    • SHOW SLAVE STATUS affiche moins d'informations.

    • Le sql_thread de l'esclave ne prend plus en charge les délais d'expiration d'exécution.

    • Le sql_thread de l'esclave ne prend plus en charge l'ignorance de certaines instructions.

  • Ajustements du journal binaire MySQL 5.7 :

    • L'ajustement de la vitesse de transmission n'est plus pris en charge.

    • rds_rpl_receive_buffer_difftime n'est plus pris en charge.

    • rds_rpl_receive_buffer_size n'est plus pris en charge.

Ajustements liés aux journaux

Ajustements du journal des erreurs MySQL 5.7 :

  • L'adresse IP, l'utilisateur et la latence E/S ou réseau pour SHUTDOWN ne sont plus enregistrés.

  • L'affichage du nom de la table pour une clé en double n'est plus pris en charge.

Anciens types de données temporelles (<u>TIME</u>, <u>DATETIME</u> et <u>TIMESTAMP</u>)

Avant la version 5.6.4, les anciens types de données temporelles ne prenaient pas en charge les microsecondes.

Les types de données temporelles prennent en charge la précision en microsecondes.

Important

Lors d'une mise à niveau de 5,6 vers 5,7, le système détecte et reconstruit les tables contenant des champs avec d'anciens types de données temporelles. Cela ralentit le processus de mise à niveau.

Annexe 7 : Différences de fonctionnalités entre MySQL 5.5 et MySQL 5.6

Remarque

Le tableau ci-dessous répertorie uniquement certaines des différences majeures entre MySQL 5.5 et 5,6. Pour plus d'informations sur les autres différences, consultez le Manuel de référence MySQL 5.6.

Fonctionnalité

MySQL 5.5

MySQL 5.6

Index en texte intégral

Non pris en charge

Pris en charge

DDL en ligne InnoDB

Non pris en charge

Pris en charge partiellement

REDO

Prend en charge un maximum de 4 Go

Prend en charge un maximum de 512 Go

Vidage des pages sales

Monocœur

Utilise un thread de vidage dédié

Purge

Monocœur

Multicœur

EXCHANGE PARTITION

Non pris en charge

Pris en charge

Sélection explicite de partition dans les instructions DML

Non pris en charge

Pris en charge

INFORMATION_SCHEMA

MySQL 5.6 fournit davantage d'informations sur le pool de tampons ainsi que plus de métadonnées concernant les tables, les index et les champs.

PERFORMANCE_SCHEMA

Performance Schema dans MySQL 5.6 ajoute davantage d'informations de surveillance et de formats d'affichage.

Réplication

Les améliorations et modifications apportées à la réplication dans MySQL 5.6 incluent les éléments suivants :

  • Prise en charge de la réplication basée sur GTID. La réplication basée sur GTID est contrôlée par les paramètres gtid_mode et enforce_gtid_consistency.

  • Prise en charge de l'application concurrente des journaux binaires sur la base de données secondaire à l'aide de plusieurs threads.

  • Les commandes FLUSH MASTER et FLUSH SLAVE sont remplacées par RESET MASTER et RESET SLAVE dans MySQL 5.6.

  • Les commandes SLAVE START et SLAVE STOP sont remplacées par START SLAVE et STOP SLAVE dans MySQL 5.6.

Important

Après la mise à niveau d'une instance RDS for MySQL de la version 5.5 vers la version 5.6, celle-ci bascule automatiquement vers le mode de réplication basé sur GTID.

Optimiseur

MySQL 5.6 améliore l'optimiseur avec des fonctionnalités telles que :

  • Multi-Range Read.

  • Index Condition Pushdown.

  • Prise en charge d'Optimizer_trace disponible.

Purge asynchrone des fichiers volumineux

Non pris en charge

Pris en charge

Pool de threads

Non pris en charge

Pris en charge

Agent de performance

Non pris en charge

Pris en charge

DDL accéléré

Non pris en charge

Pris en charge

Moteur de séquence

Non pris en charge

Pris en charge

FAQ

  • Q : Pourquoi un basculement d'instance se produit-il lors de la mise à niveau ? Existe-t-il d'autres risques majeurs ?

    R : Afin de garantir la stabilité du service, les instances dotées de disques locaux haute performance sont mises à niveau en mettant d'abord à niveau le nœud secondaire, puis en effectuant un basculement. Les instances équipées de disques ESSD sont mises à niveau en créant un nouveau nœud, puis en effectuant un basculement. Il n'existe aucun autre risque majeur. Pour plus d'informations sur l'impact d'un basculement primaire/secondaire, consultez la section Impact d'un basculement primaire/secondaire.

  • Q : Les nœuds primaire et secondaire sont-ils mis à niveau simultanément ?

    R : Lors de la mise à niveau d'un disque local haute performance, l'instance secondaire est mise à niveau en premier, suivie de l'instance principale.

  • Q : Comment mettre à niveau une instance Basic Edition exécutant MySQL 5.7 avec des disques SSD standard ?

    R : Vous ne pouvez pas mettre à niveau directement ce type d'instance. Pour mettre à niveau une instance Basic Edition exécutant MySQL 5.7 avec des disques SSD standard, vous devez d'abord modifier le type de stockage pour passer des SSD standard aux disques ESSD, puis mettre à niveau la version de la base de données.

  • Q : Le modèle de paramètres est-il conservé après la mise à niveau de la version de la base de données ?

    R : Cela dépend. Si l'instance utilise un modèle de paramètres système avant la mise à niveau, elle bascule automatiquement vers le modèle de paramètres système correspondant à la nouvelle version. Par exemple, une instance utilisant le modèle de paramètres MySQL_InnoDB_5,7_High-availability_Performance basculera vers le modèle MySQL_InnoDB_8,0_High-availability_Performance après une mise à niveau de MySQL 5.7 vers 8,0. En revanche, si l'instance utilise un modèle de paramètres personnalisé, celui-ci n'est pas conservé après la mise à niveau.

  • Q : Puis-je modifier l'instance pendant la mise à niveau de la version de la base de données ?

    R : Non, cela est impossible. Vous ne pourrez effectuer d'autres opérations sur l'instance qu'une fois la mise à niveau terminée.

  • Q : La version de la base de données prend-elle en charge les mises à niveau automatiques ?

    R : Non. Les mises à niveau majeures automatiques ne sont pas prises en charge.

  • Q : Puis-je rétrograder la version de la base de données ?

    R : Non, vous ne pouvez pas rétrograder directement la version depuis la console. Choisissez l'une des méthodes suivantes selon que l'instance contient ou non des données métier :

    • Avec des données métier : Achetez une instance exécutant une version antérieure, utilisez DTS pour migrer les données de l'instance de version supérieure vers la nouvelle instance de version inférieure, puis libérez l'instance de version supérieure une fois la migration terminée. Cette procédure permet de rétrograder indirectement la version de la base de données. Pour plus d'informations, consultez la section Migration de données entre instances RDS.

    • Sans données métier : Désabonnez-vous de l'instance d'origine et achetez une nouvelle instance exécutant la version antérieure requise. Pour les instances par abonnement, suivez la procédure de remboursement pour vous désabonner. Pour les instances au paiement à l'utilisation, libérez-les directement.

  • Q : Lors de la mise à niveau d'une instance RDS for MySQL de la version 5.6 vers 5.7 ou de 5,7 vers 8,0, l'opération échoue. Le message suivant s'affiche : « The current instance has a full-text index and its minor version is earlier than 20221130. Please upgrade the minor version before deleting and rebuilding the full-text index » ou « The current instance contains a full-text index built in the system tablespace. Please delete and rebuild the corresponding full-text index before proceeding with the upgrade. » Quelle en est la cause et quelle est la solution ?

    R : Voici la cause et la solution :

    • Cause

      En raison d'un problème historique dans MySQL, lorsque vous créez un index en texte intégral sur une version ancienne de MySQL 5.6, celui-ci est construit dans le tablespace système. Lors de la mise à niveau vers les versions 5.7 ou 8.0, un index en texte intégral situé dans le tablespace système peut entraîner une corruption du tablespace. Par conséquent, vous devez résoudre ce problème avant la mise à niveau afin d'éviter toute corruption des données et leur inaccessibilité.

      Remarque

      Ce problème a été corrigé dans la version 20221130 de RDS for MySQL 5.6. Les index en texte intégral sont désormais construits dans un tablespace distinct.

    • Solution

      Important

      Les index en texte intégral sur les versions antérieures de RDS for MySQL 5.6 sont créés dans le tablespace système. Par conséquent, assurez-vous que la version source est RDS for MySQL 5.6 20221130 ou ultérieure avant de procéder à la mise à niveau vers RDS for MySQL 5.7. Si vous utilisez une version antérieure, mettez d'abord à niveau vers la dernière version de RDS for MySQL 5.6.

      1. Sur la base du nom de table indiqué dans l'invite, supprimez l'index en texte intégral qui a été construit dans le tablespace système.

        # Delete the full-text index.
        ALTER TABLE $table_name DROP INDEX $fts_name;
      2. Recréez l'index en texte intégral.

        # Re-create the full-text index.
        ALTER TABLE $table_name ADD FULLTEXT INDEX $fts_name;
      3. Après avoir créé l'index, vous pouvez exécuter l'instruction SQL suivante pour vérifier les index en texte intégral sur l'instance actuelle. L'instruction renvoie tous les index en texte intégral construits dans le tablespace système. Si la requête renvoie un résultat vide, la mise à niveau de RDS for MySQL 5.6 vers RDS for MySQL 5.7 n'échouera pas en raison de ce problème.

        # Query for full-text indexes built in the system tablespace.
        SELECT NAME FROM information_schema.INNODB_SYS_TABLES WHERE TABLE_ID IN ( SELECT CONV(SUBSTRING_INDEX(SUBSTRING_INDEX(NAME, '_', -4),'_', 1),16,10) FROM INNODB_SYS_TABLES WHERE NAME LIKE '%fts_00000000%' AND SPACE = 0);
  • Q : Lors de la mise à niveau d'une instance RDS for MySQL de la version 5.7 vers 8.0, l'erreur 267 - Illegal mix of collations (utf8mb4_general_ci,IMPLICIT) and (utf8mb4_0900_ai_ci,IMPLICIT) for operation '=' est signalée. Comment y remédier ?

    R : Vérifiez le jeu de caractères et l'interclassement dans MySQL. Si vous utilisez utf8mb4_general_ci, exécutez les instructions SQL suivantes pour le remplacer par utf8mb4_0900_ai_ci.

    # Modify the character set and collation of the database.
    ALTER DATABASE database_name CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci;
    # Modify the character set and collation of the table.
    ALTER TABLE table_name CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;
    # Modify the character set and collation of the field.
    ALTER TABLE table_name CHANGE column_name column_name type CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;

    Si vous créez une table avec l'interclassement utf8mb4_general_ci dans MySQL 5.7, puis effectuez une mise à niveau vers MySQL 8.0, le système utilise utf8mb4_0900_ai_ci comme interclassement par défaut. Si vous exécutez une requête comparant une colonne utilisant utf8mb4_general_ci avec une colonne utilisant utf8mb4_0900_ai_ci, MySQL ne peut pas traiter ces deux interclassements différents, ce qui génère une erreur.

  • Q : La durée de la coupure de connexion temporaire lors d'une mise à niveau majeure est-elle toujours de 15 secondes, indépendamment de la présence d'instances en lecture seule ?

    R : Oui. Nous vous recommandons d'effectuer la mise à niveau pendant les heures creuses.

Opérations API associées

Opération API

Description

Mettre à niveau la version majeure d'une base de données RDS MySQL

Met à niveau la version majeure de la base de données d'une instance RDS.