View a markdown version of this page

Verifica preliminarmente le descrizioni per l'aggiornamento di Aurora MySQL dalla versione 3 alla versione 8.4 - Amazon Aurora

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Verifica preliminarmente le descrizioni per l'aggiornamento di Aurora MySQL dalla versione 3 alla versione 8.4

I seguenti precontrolli vengono eseguiti quando si esegue l'aggiornamento da Aurora MySQL versione 3 (compatibile con MySQL 8.0) ad Aurora MySQL versione 8.4 (compatibile con MySQL 8.4). Questi controlli preliminari identificano potenziali problemi di compatibilità prima dell'inizio dell'aggiornamento.

Errori

In caso di esito negativo, i seguenti controlli preliminari generano errori e l’aggiornamento non può essere eseguito.

Controlli preliminari MySQL che restituiscono errori

I seguenti controlli preliminari sono forniti da Community MySQL:

deprecato RouterAuthMethod

Livello di controllo preliminare: errore

Verifica la presenza di metodi di autenticazione obsoleti o non validi utilizzati dagli account interni di MySQL Router

Questo precontrollo verifica che gli account interni di MySQL Router non utilizzino metodi di autenticazione obsoleti o non validi che possono essere rimossi o modificati in MySQL 8.4. Gli account MySQL Router vengono creati automaticamente al momento del bootstrap quando al Router non viene richiesto di utilizzare un account esistente.

Output di esempio:

{ "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." } ] }

Il precontrollo restituisce un errore perché l'mysql_router_testaccount utilizza un metodo di autenticazione obsoleto come o. mysql_native_password sha256_password

Per verificare il metodo di autenticazione in uso:

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

Risoluzione:

Aggiorna l'account MySQL Router per utilizzare l'autenticazione: caching_sha2_password

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

In alternativa, aggiorna MySQL Router alla versione più recente per garantire che i metodi di autenticazione obsoleti non vengano più utilizzati. Dalla versione 8.0.19, puoi anche indicare a MySQL Router di utilizzare un account dedicato creato utilizzando AdminAPI.

partizioni WithPrefixKeys

Livello di controllo preliminare: errore

Controlla le partizioni per chiave utilizzando colonne con indici di chiave prefissi

Questo precontrollo identifica le tabelle partizionate che utilizzano colonne con indici di chiave di prefisso nella chiave di partizionamento. Gli indici sui prefissi di colonna non sono supportati per il partizionamento delle chiavi: vengono ignorati dalla funzione di partizione e non sono consentiti a partire da MySQL 8.4.0.

Per ulteriori informazioni, consulta Restrizioni e limitazioni sul partizionamento nella documentazione di MySQL.

Output di esempio:

{ "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." } ] }

Risoluzione:

-- 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;
Definizione della colonna

Livello di controllo preliminare: errore

Verifica la presenza di errori nelle definizioni delle colonne

Questo precontrollo verifica che tutte le definizioni delle colonne siano compatibili con i requisiti di MySQL 8.4. Identifica specificamente le colonne di tipo FLOAT o DOUBLE con il set di AUTO_INCREMENT flag, che non è più supportato in MySQL 8.4.

Output di esempio:

{ "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." } ] }

Risoluzione:

Cambia il tipo di colonna da FLOAT o DOUBLE verso un tipo intero:

-- 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

Controlli preliminari Aurora MySQL che restituiscono errori

I seguenti controlli preliminari sono specifici di Aurora MySQL:

aurora UnsupportedPluginsCheck

Livello di controllo preliminare: errore

Verifica la presenza di plugin non supportati

Questo Aurora-specific precontrollo identifica i plugin che non sono supportati in Aurora MySQL versione 8.4. Aurora ha requisiti di compatibilità dei plugin specifici che differiscono dalla community MySQL.

Output di esempio:

{ "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." } ] }

Risoluzione:

Disinstalla i plugin non supportati:

UNINSTALL PLUGIN plugin_name;
aurora UnsupportedComponentsCheck

Livello di controllo preliminare: errore

Verifica la presenza di componenti non supportati

Questo precontrollo verifica che nessun componente MySQL non supportato in Aurora MySQL versione 8.4 sia attualmente installato o attivo. I componenti sono diversi dai plugin e forniscono funzionalità estese attraverso l'infrastruttura dei componenti.

Output di esempio:

{ "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." } ] }

Risoluzione:

Disinstalla i componenti non supportati:

UNINSTALL COMPONENT 'component_name';
aurora UpgradeCheckForSysSchemaObjectTypeMismatch

Livello di controllo preliminare: errore

Verifica la mancata corrispondenza del tipo di oggetto per lo schema sys

Questo precontrollo verifica che tutti gli oggetti sys dello schema abbiano i tipi e le definizioni di oggetti corretti. Lo schema sys è uno schema di sistema che fornisce visualizzazioni e procedure per il monitoraggio e la diagnostica del database. Le mancate corrispondenze possono verificarsi se lo schema è stato modificato o danneggiato manualmente.

Output di esempio:

{ "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)." } ] }

Risoluzione:

-- 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;

Avvisi

In caso di esito negativo, i seguenti controlli preliminari generano avvisi ma l’aggiornamento può comunque essere eseguito.

Controlli preliminari MySQL che restituiscono avvisi

I seguenti controlli preliminari sono forniti da Community MySQL:

deprecato DefaultAuth

Livello di controllo preliminare: avviso

Verifica la presenza di metodi di autenticazione predefiniti obsoleti o non validi nelle variabili di sistema

Questo precontrollo verifica che la variabile di default_authentication_plugin sistema non sia impostata su metodi di autenticazione obsoleti.

Importante

MySQL 8.4.0 rimuove completamente l'opzione obsoleta. default_authentication_plugin Il mysql_native_password plugin è disabilitato per impostazione predefinita a partire da MySQL 8.4.0 ed è soggetto a rimozione nelle versioni future.

Per ulteriori informazioni sulle modifiche all'autenticazione nella versione 8.4, vedere. Considerazioni sulla sicurezza per l'aggiornamento da Aurora MySQL versione 3 alla versione 8.4

Output di esempio:

{ "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." } ] }

Risoluzione:

Aggiorna le variabili del sistema di autenticazione da utilizzarecaching_sha2_password:

  1. Vai alla console Amazon RDS e accedi ai gruppi di parametri.

  2. Seleziona il gruppo di parametri del cluster DB.

  3. Modifica i seguenti parametri:

    • default_authentication_plugin = caching_sha2_password

    • authentication_policy = caching_sha2_password,*,

  4. Applica le modifiche. Potrebbe essere necessario un riavvio.

Assicurati che i client dell'applicazione supportino caching_sha2_password l'autenticazione prima di apportare questa modifica. Alcune vecchie librerie client MySQL potrebbero non supportare questo metodo di autenticazione.

straniera KeyReferences

Livello di controllo preliminare: avviso

Verifica la presenza di chiavi esterne che non fanno riferimento a un indice univoco completo

Questo precontrollo assicura che tutti i vincoli di chiave esterna facciano riferimento a indici completi di chiave unica o primaria. Le chiavi esterne per gli indici parziali potrebbero essere proibite a partire da MySQL 8.4.0.

Output di esempio:

{ "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'." } ] }

Risoluzione:

Scegliete l'opzione più adatta alla vostra applicazione:

-- 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;

Controlli preliminari Aurora MySQL che restituiscono avvisi

I seguenti controlli preliminari sono specifici di Aurora MySQL:

aurora ValidatePasswordPluginCheck

Livello di controllo preliminare: avviso

Verifica la presenza del plugin validate_password obsoleto

Questo precontrollo identifica l'utilizzo del plug-in obsoleto. validate_password In MySQL 8.0+, la funzionalità validate_password è stata reimplementata come componente (). component_validate_password Aurora MySQL versione 8.4 richiede la migrazione all'implementazione basata su componenti.

Per ulteriori informazioni, consulta Migrazione dei componenti di convalida della password.

Output di esempio:

{ "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." } ] }

Risoluzione:

-- 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%';

Note

In caso di esito negativo, i seguenti controlli preliminari generano notifiche ma l’aggiornamento può comunque procedere.

Privilegi non validi

Livello di controllo preliminare: notifica

Verifica i privilegi utente che verranno rimossi

Questo precontrollo identifica gli account utente con privilegi che vengono rimossi o modificati in MySQL 8.4. Il SET_USER_ID privilegio viene rimosso come parte del processo di aggiornamento. Se i privilegi non vengono utilizzati, non è richiesta alcuna azione. Altrimenti, assicurati che smettano di essere utilizzati prima dell'aggiornamento perché andranno persi.

Output di esempio:

{ "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" } ] }

Risoluzione:

Questo è un avviso informativo: non è richiesta alcuna azione. Il SET_USER_ID privilegio verrà rimosso automaticamente durante il processo di aggiornamento.

Tuttavia, se l'applicazione si basa sul SET_USER_ID privilegio, rivedi e aggiorna l'applicazione prima dell'aggiornamento.

Errori, avvisi o notifiche

I seguenti controlli preliminari possono restituire un errore, un avviso o un avviso a seconda dell'output del precontrollo.

autenticazione MethodUsage

Livello di controllo preliminare: errore, avviso o notifica

Verifica la presenza di metodi di autenticazione utente obsoleti o non validi

Questo precontrollo identifica gli account utente utilizzando metodi di autenticazione obsoleti o che verranno rimossi in MySQL 8.4. Il plugin di mysql_native_password autenticazione è obsoleto e disabilitato per impostazione predefinita a partire da MySQL 8.4.0. Il plugin è soggetto a rimozione nelle future versioni.

Il livello di gravità è dinamico in base al ciclo di vita della funzionalità: avviso prima della deprecazione, avviso dopo la deprecazione, errore dopo la rimozione.

Output di esempio:

{ "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": "" } ] }

Risoluzione:

Aggiorna caching_sha2_password gli account utente per utilizzare l'autenticazione:

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

Non è richiesta alcuna azione per gli account di sistema interni di Aurora. Vengono aggiornati automaticamente durante il processo di aggiornamento. Il tentativo di modificare questi account manualmente può causare problemi con la funzionalità Aurora.

Utilizzo del plugin

Livello di controllo preliminare: errore, avviso o notifica

Verifica l'utilizzo del plug-in obsoleto o rimosso

Questo precontrollo identifica i plugin che sono stati obsoleti o rimossi in MySQL 8.4. Esamina tutti i plugin attivi e riporta il loro stato di obsolescenza. Il livello di gravità è dinamico in base al ciclo di vita della funzionalità.

Output di esempio:

{ "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." } ] }

Risoluzione:

Disinstalla i plugin obsoleti e installa i relativi componenti sostitutivi:

-- 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%';

La tabella seguente elenca i plugin obsoleti e i relativi sostituti:

Plug-in Sostituzione
keyring_file component_keyring_file
keyring_encrypted_file component_keyring_encrypted_file
keyring_oci component_keyring_oci
authentication_fido authentication_webauthn
controllare TableCommand

Livello di controllo preliminare: errore, avviso o notifica

Problemi segnalati dal comando check table x for upgrade

Questo precontrollo esegue il CHECK TABLE ... FOR UPGRADE comando su tutte le tabelle utente per identificare problemi strutturali, funzionalità obsolete o incompatibilità con MySQL 8.4. Il comando esegue una convalida completa della struttura della tabella e dei metadati.

A differenza di altri controlli preliminari, questo può restituire un errore, un avviso o una notifica a seconda dell’output di CHECK TABLE. Se questo precontrollo restituisce delle tabelle, esaminale attentamente insieme al codice e al messaggio restituiti prima di iniziare l'aggiornamento.

Output di esempio:

{ "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" } ] }

Risoluzione:

Esamina gli oggetti segnalati e correggili o rimuovili prima dell'aggiornamento. I problemi comuni includono:

  • Visualizzazioni che fanno riferimento a tabelle o colonne non valide: elimina o ricrea la vista.

  • Tabelle danneggiate: esegui o ricrea la tabella. REPAIR TABLE

  • Trigger con attributo mancante: ricrea il trigger. CREATED

Per ulteriori informazioni, consulta CHECK TABLE statement nella documentazione di MySQL.