View a markdown version of this page

Vérifiez les descriptions pour la mise à niveau d'Aurora MySQL version 3 vers la version 8.4 - Amazon Aurora

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Vérifiez les descriptions pour la mise à niveau d'Aurora MySQL version 3 vers la version 8.4

Les prévérifications suivantes sont exécutées lors de la mise à niveau d'Aurora MySQL version 3 (compatible avec MySQL 8.0) vers Aurora MySQL version 8.4 (compatible avec MySQL 8.4). Ces vérifications préliminaires identifient les problèmes de compatibilité potentiels avant le début de la mise à niveau.

Erreurs

Les vérifications préalables suivantes génèrent des erreurs lorsque la vérification préalable échoue et que la mise à niveau ne peut pas avoir lieu.

Vérifications préalables de MySQL qui signalent des erreurs

Les vérifications préalables suivantes sont tirées de Community MySQL :

déprécié RouterAuthMethod

Niveau de vérification préalable : erreur

Vérifiez les méthodes d'authentification obsolètes ou non valides utilisées par les comptes internes de MySQL Router

Ce précontrôle vérifie que les comptes internes de MySQL Router n'utilisent pas de méthodes d'authentification obsolètes ou non valides qui peuvent être supprimées ou modifiées dans MySQL 8.4. Les comptes MySQL Router sont automatiquement créés au moment du démarrage lorsque le routeur n'est pas invité à utiliser un compte existant.

Exemple de sortie :

{ "id": "deprecatedRouterAuthMethod", "title": "Check for deprecated or invalid authentication methods in use by MySQL Router internal accounts.", "status": "OK", "description": "Warning: The following accounts are MySQL Router accounts that use a deprecated authentication method.\nThose accounts are automatically created at bootstrap time when the Router is not instructed to use an existing account. Please upgrade MySQL Router to the latest version to ensure deprecated authentication methods are no longer used.\nSince version 8.0.19 it's also possible to instruct MySQL Router to use a dedicated account. That account can be created using the AdminAPI.", "documentationLink": "https://dev.mysql.com/doc/mysql-shell/en/configuring-router-user.html https://dev.mysql.com/doc/mysql-router/en/mysqlrouter.html#option_mysqlrouter_account", "detectedProblems": [ { "level": "Error", "dbObject": "mysql_router_test@%", "description": " - router user with deprecated authentication method." } ] }

La prévérification renvoie une erreur car le mysql_router_test compte utilise une méthode d'authentification obsolète telle que ou. mysql_native_password sha256_password

Pour vérifier la méthode d'authentification utilisée :

SELECT user, host, plugin FROM mysql.user WHERE user = 'mysql_router_test';

Résolution :

Mettez à jour le compte MySQL Router pour utiliser caching_sha2_password l'authentification :

ALTER USER 'mysql_router_test'@'%' IDENTIFIED WITH caching_sha2_password BY 'new_password';

Vous pouvez également mettre à niveau MySQL Router vers la dernière version pour vous assurer que les méthodes d'authentification obsolètes ne sont plus utilisées. Depuis la version 8.0.19, vous pouvez également demander à MySQL Router d'utiliser un compte dédié créé à l'aide de l'AdminAPI.

cloisons WithPrefixKeys

Niveau de vérification préalable : erreur

Vérifie les partitions par clé à l'aide de colonnes avec des index de clé de préfixe

Ce précontrôle identifie les tables partitionnées qui utilisent des colonnes avec des index de clé de préfixe dans leur clé de partitionnement. Les index sur les préfixes de colonnes ne sont pas pris en charge pour le partitionnement des clés : ils sont ignorés par la fonction de partition et ne sont pas autorisés depuis MySQL 8.4.0.

Pour plus d'informations, consultez la section Restrictions et limitations relatives au partitionnement dans la documentation MySQL.

Exemple de sortie :

{ "id": "partitionsWithPrefixKeys", "title": "Checks for partitions by key using columns with prefix key indexes", "status": "OK", "description": "Indexes on column prefixes are not supported for key partitioning, they are ignored by the partition function and so they are not allowed as of 8.4.0. This check identifies tables with partitions defined this way, they should be fixed before upgrading to 8.4.0.", "documentationLink": "https://dev.mysql.com/doc/refman/en/partitioning-limitations.html", "detectedProblems": [ { "level": "Error", "dbObject": "test.test_partition_prefix", "description": "Error: the `test`.`test_partition_prefix` table uses partition by KEY using the following columns with prefix index: name." } ] }

Résolution :

-- Check for prefix indexes (Sub_part column shows prefix length) SHOW INDEX FROM test.test_partition_prefix; -- Option 1: Change partition to use non-prefix columns only ALTER TABLE test.test_partition_prefix PARTITION BY KEY (id) PARTITIONS 4; -- Option 2: Remove prefix from index ALTER TABLE test.test_partition_prefix DROP PRIMARY KEY, ADD PRIMARY KEY (id, name); -- Full column, no prefix -- Option 3: Remove partitioning ALTER TABLE test.test_partition_prefix REMOVE PARTITIONING;
Définition de colonne

Niveau de vérification préalable : erreur

Vérifie les erreurs dans les définitions de colonnes

Ce précontrôle vérifie que toutes les définitions de colonnes sont compatibles avec les exigences de MySQL 8.4. Il identifie spécifiquement les colonnes de type FLOAT ou DOUBLE dont le AUTO_INCREMENT drapeau est défini, ce qui n'est plus pris en charge dans MySQL 8.4.

Exemple de sortie :

{ "id": "columnDefinition", "title": "Checks for errors in column definitions", "status": "OK", "description": "Identifies column definitions that may not be supported in future versions of MySQL", "detectedProblems": [ { "level": "Error", "dbObject": "test.test_column_def.id", "description": "The column is of type FLOAT and has the AUTO_INCREMENT flag set, this is no longer supported." } ] }

Résolution :

Changez le type de colonne de FLOAT ou DOUBLE vers un type entier :

-- Check current definition SHOW CREATE TABLE test.test_column_def\G -- Change FLOAT AUTO_INCREMENT to BIGINT AUTO_INCREMENT ALTER TABLE test.test_column_def MODIFY COLUMN id BIGINT NOT NULL AUTO_INCREMENT; -- Verify SHOW CREATE TABLE test.test_column_def\G

Vérifications préalables d’Aurora MySQL qui signalent des erreurs

Les vérifications préalables suivantes sont spécifiques à Aurora MySQL :

aurore UnsupportedPluginsCheck

Niveau de vérification préalable : erreur

Vérifiez les plugins non pris en charge

Cette Aurora-specific prévérification identifie les plugins qui ne sont pas pris en charge dans Aurora MySQL version 8.4. Aurora a des exigences spécifiques en matière de compatibilité des plugins qui diffèrent de celles de la communauté MySQL.

Exemple de sortie :

{ "id": "auroraUnsupportedPluginsCheck", "title": "Check for unsupported plugins", "status": "OK", "description": "Checks for unsupported plugins installed in the database", "documentationLink": "https://docs.aws.amazon.com/AmazonRDS/latest/AuroraMySQLReleaseNotes/", "detectedProblems": [ { "level": "Error", "dbObject": "all", "description": "Plugin simple_parser loaded in the engine. To proceed with the upgrade, remove this plugin." } ] }

Résolution :

Désinstallez les plugins non pris en charge :

UNINSTALL PLUGIN plugin_name;
aurore UnsupportedComponentsCheck

Niveau de vérification préalable : erreur

Vérifiez les composants non pris en charge

Ce précontrôle vérifie qu'aucun composant MySQL non pris en charge dans la version 8.4 d'Aurora MySQL n'est actuellement installé ou actif. Les composants sont différents des plugins et fournissent des fonctionnalités étendues grâce à l'infrastructure des composants.

Exemple de sortie :

{ "id": "auroraUnsupportedComponentsCheck", "title": "Check for unsupported components", "status": "OK", "description": "Checks for unsupported components installed in the database", "documentationLink": "https://docs.aws.amazon.com/AmazonRDS/latest/AuroraMySQLReleaseNotes/", "detectedProblems": [ { "level": "Error", "dbObject": "all", "description": "Component file://component_log_sink_json loaded in the engine. To proceed with the upgrade, uninstall this component." } ] }

Résolution :

Désinstallez les composants non pris en charge :

UNINSTALL COMPONENT 'component_name';
aurore UpgradeCheckForSysSchemaObjectTypeMismatch

Niveau de vérification préalable : erreur

Vérifiez que le type d'objet ne correspond pas au schéma sys

Cette prévérification permet de vérifier que tous les objets du sys schéma possèdent les types d'objets et les définitions corrects. Le schéma système est un schéma système qui fournit des vues et des procédures pour la surveillance et le diagnostic des bases de données. Des incohérences peuvent se produire si le schéma a été modifié ou endommagé manuellement.

Exemple de sortie :

{ "id": "auroraUpgradeCheckForSysSchemaObjectTypeMismatch", "title": "Check object type mismatch for sys schema.", "status": "OK", "description": "Database contains objects with type mismatch for sys schema.", "detectedProblems": [ { "level": "Error", "dbObject": "sys.host_summary", "description": "Your object sys.host_summary has a type mismatch. To fix the inconsistency we recommend to rename or remove the object before upgrading (use RENAME TABLE command)." } ] }

Résolution :

-- Check the object type SELECT TABLE_NAME, TABLE_TYPE FROM information_schema.tables WHERE TABLE_SCHEMA = 'sys' AND TABLE_NAME = 'host_summary'; -- Option 1: Rename the mismatched object RENAME TABLE sys.host_summary TO sys.host_summary_backup; -- Option 2: Drop the mismatched object DROP TABLE sys.host_summary;

Avertissements

Les vérifications préalables suivantes génèrent des avertissements en cas d’échec, mais la mise à niveau peut tout de même avoir lieu.

Vérifications préalables de MySQL qui signalent des avertissements

Les vérifications préalables suivantes sont tirées de Community MySQL :

déprécié DefaultAuth

Niveau de vérification préalable : avertissement

Vérifiez les méthodes d'authentification par défaut obsolètes ou non valides dans les variables système

Ce précontrôle vérifie que la variable default_authentication_plugin système n'est pas définie sur des méthodes d'authentification obsolètes.

Important

MySQL 8.4.0 supprime complètement l'option obsolète. default_authentication_plugin Le mysql_native_password plugin est désactivé par défaut à partir de MySQL 8.4.0 et est susceptible d'être supprimé dans une future version.

Pour plus d'informations sur les modifications apportées à l'authentification dans la version 8.4, consultezConsidérations relatives à la sécurité lors de la mise à niveau d'Aurora MySQL version 3 vers la version 8.4.

Exemple de sortie :

{ "id": "deprecatedDefaultAuth", "title": "Check for deprecated or invalid default authentication methods in system variables.", "status": "OK", "description": "The following variables have problems with their set authentication method:", "detectedProblems": [ { "level": "Warning", "dbObject": "default_authentication_plugin", "description": "mysql_native_password authentication method is deprecated and it should be considered to correct this before upgrading to 8.4.0 release." }, { "level": "Warning", "dbObject": "authentication_policy", "description": "mysql_native_password authentication method is deprecated and it should be considered to correct this before upgrading to 8.4.0 release." } ] }

Résolution :

Mettez à jour les variables du système d'authentification à utiliser caching_sha2_password :

  1. Accédez à la console Amazon RDS et accédez aux groupes de paramètres.

  2. Sélectionnez le groupe de paramètres de votre cluster de base de données.

  3. Modifiez les paramètres suivants :

    • default_authentication_plugin = caching_sha2_password

    • authentication_policy = caching_sha2_password,*,

  4. Appliquez les modifications. Un redémarrage peut être nécessaire.

Assurez-vous que les clients de votre application prennent en charge caching_sha2_password l'authentification avant d'effectuer cette modification. Certaines anciennes bibliothèques clientes MySQL peuvent ne pas prendre en charge cette méthode d'authentification.

étranger KeyReferences

Niveau de vérification préalable : avertissement

Vérifie la présence de clés étrangères ne faisant pas référence à un index unique complet

Cette prévérification garantit que toutes les contraintes de clé étrangère font référence à des index complets de clés uniques ou primaires. Les clés étrangères pour les index partiels peuvent être interdites à partir de MySQL 8.4.0.

Exemple de sortie :

{ "id": "foreignKeyReferences", "title": "Checks for foreign keys not referencing a full unique index", "status": "OK", "description": "Foreign keys to partial indexes may be forbidden as of 8.4.0, this check identifies such cases to warn the user.", "detectedProblems": [ { "level": "Warning", "dbObject": "sample.child_table_ibfk_1", "description": "invalid foreign key defined as 'child_table(parent_name)' references a non unique key at table 'parent_table'." } ] }

Résolution :

Choisissez l'option qui convient le mieux à votre application :

-- Option 1: Add unique index on parent table (if values are unique) ALTER TABLE test.parent_table ADD UNIQUE INDEX idx_parent_name_unique (parent_name); -- Option 2: Drop the foreign key if not needed ALTER TABLE test.child_table DROP FOREIGN KEY child_table_ibfk_1;

Vérifications préalables d’Aurora MySQL qui signalent des avertissements

Les vérifications préalables suivantes sont spécifiques à Aurora MySQL :

aurore ValidatePasswordPluginCheck

Niveau de vérification préalable : avertissement

Vérifiez si le plugin validate_password est obsolète

Ce précontrôle identifie l'utilisation du plugin obsolètevalidate_password. Dans MySQL 8.0+, la fonctionnalité validate_password a été réimplémentée en tant que component (). component_validate_password La version 8.4 d'Aurora MySQL nécessite une migration vers l'implémentation basée sur les composants.

Pour de plus amples informations, veuillez consulter Migration du composant de validation de mot de.

Exemple de sortie :

{ "id": "auroraValidatePasswordPluginCheck", "title": "Check for deprecated validate_password plugin", "status": "OK", "description": "The validate_password plugin is deprecated in Aurora MySQL 8.4", "detectedProblems": [ { "level": "Warning", "dbObject": "validate_password", "description": "The validate_password plugin is deprecated and will be removed in a future release. It is recommended to transition to the validate_password component." } ] }

Résolution :

-- Check current plugin status SELECT plugin_name, plugin_status FROM information_schema.plugins WHERE plugin_name = 'validate_password'; -- Uninstall the plugin UNINSTALL PLUGIN validate_password; -- Install the component replacement INSTALL COMPONENT 'file://component_validate_password'; -- Verify SELECT * FROM mysql.component WHERE component_urn LIKE '%validate_password%';

Notifications

La vérification préalable suivante génère une notification en cas d’échec, mais la mise à niveau peut tout de même avoir lieu.

Privilèges non valides

Niveau de vérification préalable : notification

Vérifie les privilèges utilisateur qui seront supprimés

Cette prévérification identifie les comptes utilisateurs dotés de privilèges qui sont supprimés ou modifiés dans MySQL 8.4. Le SET_USER_ID privilège est supprimé dans le cadre du processus de mise à niveau. Si les privilèges ne sont pas utilisés, aucune action n'est requise. Sinon, assurez-vous qu'ils cessent d'être utilisés avant la mise à niveau, car ils seront perdus.

Exemple de sortie :

{ "id": "invalidPrivileges", "title": "Checks for user privileges that will be removed", "status": "OK", "description": "Verifies for users containing grants to be removed as part of the upgrade process.", "detectedProblems": [ { "level": "Notice", "dbObject": "'test_user'@'localhost'", "description": "The user 'test_user'@'localhost' has the following privileges that will be removed as part of the upgrade process: SET_USER_ID" } ] }

Résolution :

Il s'agit d'un avis d'information, aucune action n'est requise. Le SET_USER_ID privilège sera automatiquement supprimé au cours du processus de mise à niveau.

Toutefois, si votre application repose sur ce SET_USER_ID privilège, passez en revue et mettez-la à jour avant de procéder à la mise à niveau.

Erreurs, avertissements ou notifications

Les prévérifications suivantes peuvent renvoyer une erreur, un avertissement ou un avis en fonction du résultat de la prévérification.

auth MethodUsage

Niveau de vérification préalable : erreur, avertissement ou notification

Vérifiez les méthodes d'authentification utilisateur obsolètes ou non valides

Cette prévérification identifie les comptes utilisateurs utilisant des méthodes d'authentification qui sont obsolètes ou qui seront supprimées dans MySQL 8.4. Le plugin mysql_native_password d'authentification est obsolète et désactivé par défaut à partir de MySQL 8.4.0. Le plugin est susceptible d'être supprimé dans une future version.

Le niveau de gravité est dynamique en fonction du cycle de vie de la fonctionnalité : avis avant la dépréciation, avertissement après dépréciation, erreur après suppression.

Exemple de sortie :

{ "id": "authMethodUsage", "title": "Check for deprecated or invalid user authentication methods.", "status": "OK", "description": "Some users are using authentication methods that may be deprecated or removed, please review the details below.", "detectedProblems": [ { "level": "Warning", "dbObject": "testuser@localhost", "description": "" } ] }

Résolution :

Mettez à jour les comptes utilisateurs pour utiliser caching_sha2_password l'authentification :

ALTER USER 'username'@'host' IDENTIFIED WITH caching_sha2_password BY 'new_password';
Note

Aucune action n'est requise pour les comptes du système interne d'Aurora. Ils sont automatiquement mis à jour au cours du processus de mise à niveau. Toute tentative de modification manuelle de ces comptes peut entraîner des problèmes avec les fonctionnalités d'Aurora.

Utilisation du plugin

Niveau de vérification préalable : erreur, avertissement ou notification

Vérifiez si l'utilisation du plugin est obsolète ou supprimée

Ce précontrôle identifie les plugins qui ont été déconseillés ou supprimés dans MySQL 8.4. Il examine tous les plugins actifs et indique leur statut d'obsolescence. Le niveau de gravité est dynamique en fonction du cycle de vie des fonctionnalités.

Exemple de sortie :

{ "id": "pluginUsage", "title": "Check for deprecated or removed plugin usage.", "status": "OK", "description": "The following plugins are ACTIVE and they have been deprecated or removed.", "detectedProblems": [ { "level": "Error", "dbObject": "keyring_file", "description": "The 'keyring_file' plugin is removed as of MySQL 8.4.0. It must not be used anymore, please use the 'component_keyring_file' component instead." } ] }

Résolution :

Désinstallez les plugins obsolètes et installez leurs composants de remplacement :

-- Check installed plugins SELECT plugin_name, plugin_status FROM information_schema.plugins WHERE plugin_name IN ('keyring_file', 'keyring_encrypted_file', 'keyring_oci', 'authentication_fido'); -- Uninstall and replace (example for keyring_file) UNINSTALL PLUGIN keyring_file; INSTALL COMPONENT 'file://component_keyring_file'; -- Verify SELECT * FROM mysql.component WHERE component_urn LIKE '%keyring%';

Le tableau suivant répertorie les plug-ins obsolètes et leurs remplacements :

Plugin Remplacement
keyring_file component_keyring_file
keyring_encrypted_file component_keyring_encrypted_file
keyring_oci component_keyring_oci
authentication_fido authentication_webauthn
vérifier TableCommand

Niveau de vérification préalable : erreur, avertissement ou notification

Problèmes signalés par la commande check table x for upgrade

Ce précontrôle exécute la CHECK TABLE ... FOR UPGRADE commande sur toutes les tables utilisateur pour identifier les problèmes structurels, les fonctionnalités obsolètes ou les incompatibilités avec MySQL 8.4. La commande effectue une validation complète de la structure des tables et des métadonnées.

Contrairement aux autres vérifications préalables, celle-ci peut renvoyer une erreur, un avertissement ou une notification en fonction de la sortie CHECK TABLE. Si cette prévérification renvoie des tables, examinez-les attentivement, ainsi que le code de retour et le message, avant de lancer la mise à niveau.

Exemple de sortie :

{ "id": "checkTableCommand", "title": "Issues reported by 'check table x for upgrade' command", "status": "OK", "description": "Issues reported by 'check table x for upgrade' command", "detectedProblems": [ { "level": "Error", "dbObject": "test.orphaned_view", "description": "View 'test.orphaned_view' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them" }, { "level": "Error", "dbObject": "test.orphaned_view", "description": "Corrupt" } ] }

Résolution :

Passez en revue les objets signalés et corrigez-les ou supprimez-les avant de procéder à la mise à niveau. Les problèmes courants comprennent :

  • Vues faisant référence à des tables ou à des colonnes non valides : supprimez ou recréez la vue.

  • Tables endommagées : exécutez REPAIR TABLE ou recréez la table.

  • Déclencheurs dont l'CREATEDattribut est manquant : recréez le déclencheur.

Pour plus d’informations, consultez Instruction CHECK TABLE dans la documentation MySQL.