View a markdown version of this page

Precheck-Beschreibungen für das Upgrade von Aurora MySQL Version 3 auf Version 8.4 - Amazon Aurora

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Precheck-Beschreibungen für das Upgrade von Aurora MySQL Version 3 auf Version 8.4

Die folgenden Vorprüfungen werden ausgeführt, wenn Sie von Aurora MySQL Version 3 (kompatibel mit MySQL 8.0) auf Aurora MySQL Version 8.4 (kompatibel mit MySQL 8.4) aktualisieren. Diese Vorprüfungen identifizieren potenzielle Kompatibilitätsprobleme, bevor das Upgrade beginnt.

Fehler

Die folgenden Vorabprüfungen generieren Fehler, wenn die Vorabprüfung fehlschlägt und das Upgrade nicht fortgesetzt werden kann.

MySQL-Vorabprüfungen, die Fehler melden

Die folgenden Vorabprüfungen stammen von Community MySQL:

veraltet RouterAuthMethod

Stufe der Vorabprüfung: Fehler

Suchen Sie nach veralteten oder ungültigen Authentifizierungsmethoden, die von internen MySQL Router-Konten verwendet werden

Diese Vorabprüfung bestätigt, dass interne MySQL-Router-Konten keine veralteten oder ungültigen Authentifizierungsmethoden verwenden, die in MySQL 8.4 entfernt oder geändert werden können. MySQL-Router-Konten werden automatisch beim Bootstrap-Zeitpunkt erstellt, wenn der Router nicht angewiesen wird, ein vorhandenes Konto zu verwenden.

Beispielausgabe:

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

Bei der Vorabprüfung wird ein Fehler zurückgegeben, da das mysql_router_test Konto eine veraltete Authentifizierungsmethode wie oder verwendet. mysql_native_password sha256_password

Gehen Sie wie folgt vor, um die verwendete Authentifizierungsmethode zu überprüfen:

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

Auflösung

Aktualisieren Sie das MySQL Router-Konto, um die caching_sha2_password Authentifizierung zu verwenden:

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

Alternativ können Sie MySQL Router auf die neueste Version aktualisieren, um sicherzustellen, dass veraltete Authentifizierungsmethoden nicht mehr verwendet werden. Seit Version 8.0.19 können Sie MySQL Router auch anweisen, ein spezielles Konto zu verwenden, das mit der AdminAPI erstellt wurde.

Partitionen WithPrefixKeys

Stufe der Vorabprüfung: Fehler

Sucht anhand des Schlüssels anhand von Spalten mit Präfixschlüsselindizes nach Partitionen

Diese Vorabprüfung identifiziert partitionierte Tabellen, die Spalten mit Präfixschlüsselindizes in ihrem Partitionierungsschlüssel verwenden. Indizes für Spaltenpräfixe werden für die Schlüsselpartitionierung nicht unterstützt — sie werden von der Partitionsfunktion ignoriert und sind ab MySQL 8.4.0 nicht mehr zulässig.

Weitere Informationen finden Sie unter Einschränkungen und Einschränkungen bei der Partitionierung in der MySQL-Dokumentation.

Beispielausgabe:

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

Auflösung

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

Stufe der Vorabprüfung: Fehler

Überprüft die Spaltendefinitionen auf Fehler

Diese Vorabprüfung bestätigt, dass alle Spaltendefinitionen mit den Anforderungen von MySQL 8.4 kompatibel sind. Es identifiziert speziell Spalten vom Typ FLOAT oder DOUBLE mit gesetztem AUTO_INCREMENT Flag, was in MySQL 8.4 nicht mehr unterstützt wird.

Beispielausgabe:

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

Auflösung

Ändern Sie den Spaltentyp von FLOAT oder DOUBLE in einen Integer-Typ:

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

Aurora-MySQL-Vorabprüfungen, die Fehler melden

Die folgenden Vorabprüfungen sind spezifisch für Aurora MySQL:

Aurora UnsupportedPluginsCheck

Stufe der Vorabprüfung: Fehler

Suchen Sie nach nicht unterstützten Plugins

Diese Aurora-specific Vorabprüfung identifiziert Plugins, die in Aurora MySQL Version 8.4 nicht unterstützt werden. Aurora hat spezielle Plugin-Kompatibilitätsanforderungen, die sich von denen der MySQL-Community unterscheiden.

Beispielausgabe:

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

Auflösung

Deinstallieren Sie die nicht unterstützten Plugins:

UNINSTALL PLUGIN plugin_name;
Aurora UnsupportedComponentsCheck

Stufe der Vorabprüfung: Fehler

Suchen Sie nach nicht unterstützten Komponenten

Diese Vorabprüfung bestätigt, dass derzeit keine MySQL-Komponenten installiert oder aktiv sind, die in Aurora MySQL Version 8.4 nicht unterstützt werden. Komponenten unterscheiden sich von Plugins und bieten erweiterte Funktionen über die Komponenteninfrastruktur.

Beispielausgabe:

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

Auflösung

Deinstallieren Sie die nicht unterstützten Komponenten:

UNINSTALL COMPONENT 'component_name';
Aurora UpgradeCheckForSysSchemaObjectTypeMismatch

Stufe der Vorabprüfung: Fehler

Überprüfen Sie die Nichtübereinstimmung des Objekttyps für das sys-Schema

Diese Vorabprüfung überprüft, ob alle Objekte im sys Schema die richtigen Objekttypen und Definitionen haben. Das sys-Schema ist ein Systemschema, das Ansichten und Verfahren für die Datenbanküberwachung und -diagnose bereitstellt. Nichtübereinstimmungen können auftreten, wenn das Schema manuell geändert oder beschädigt wurde.

Beispielausgabe:

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

Auflösung

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

Warnungen

Die folgenden Vorabprüfungen generieren Warnungen, wenn die Vorabprüfung fehlschlägt, aber das Upgrade kann fortgesetzt werden.

MySQL-Vorabprüfungen, die Warnungen melden

Die folgenden Vorabprüfungen stammen von Community MySQL:

veraltet DefaultAuth

Stufe der Vorabprüfung: Warnung

Suchen Sie in den Systemvariablen nach veralteten oder ungültigen Standardauthentifizierungsmethoden

Diese Vorabprüfung bestätigt, dass die default_authentication_plugin Systemvariable nicht auf veraltete Authentifizierungsmethoden gesetzt ist.

Wichtig

MySQL 8.4.0 entfernt die veraltete Option vollständig. default_authentication_plugin Das mysql_native_password Plugin ist ab MySQL 8.4.0 standardmäßig deaktiviert und kann in einer future Version entfernt werden.

Weitere Hinweise zu Änderungen an der Authentifizierung in Version 8.4 finden Sie unterSicherheitsüberlegungen für das Upgrade von Aurora MySQL Version 3 auf Version 8.4.

Beispielausgabe:

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

Auflösung

Aktualisieren Sie die zu verwendenden Authentifizierungssystemvariablencaching_sha2_password:

  1. Gehen Sie zur Amazon RDS-Konsole und navigieren Sie zu Parametergruppen.

  2. Wählen Sie Ihre DB-Cluster-Parametergruppe aus.

  3. Ändern Sie die folgenden Parameter:

    • default_authentication_plugin = caching_sha2_password

    • authentication_policy = caching_sha2_password,*,

  4. Wenden Sie die Änderungen an. Möglicherweise ist ein Neustart erforderlich.

Stellen Sie sicher, dass Ihre Anwendungsclients die caching_sha2_password Authentifizierung unterstützen, bevor Sie diese Änderung vornehmen. Einige ältere MySQL-Clientbibliotheken unterstützen diese Authentifizierungsmethode möglicherweise nicht.

fremd KeyReferences

Stufe der Vorabprüfung: Warnung

Sucht nach Fremdschlüsseln, die nicht auf einen vollständigen eindeutigen Index verweisen

Diese Vorabprüfung stellt sicher, dass alle Fremdschlüsseleinschränkungen auf vollständige eindeutige Indizes oder Primärschlüsselindizes verweisen. Fremdschlüssel für Teilindizes sind ab MySQL 8.4.0 möglicherweise verboten.

Beispielausgabe:

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

Auflösung

Wählen Sie die Option, die am besten zu Ihrer Anwendung passt:

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

Aurora-MySQL-Vorabprüfungen, die Warnungen melden

Die folgenden Vorabprüfungen sind spezifisch für Aurora MySQL:

Aurora ValidatePasswordPluginCheck

Stufe der Vorabprüfung: Warnung

Suchen Sie nach dem veralteten validate_password-Plugin

Diese Vorabprüfung identifiziert die Verwendung des veralteten Plugins. validate_password In MySQL 8.0+ wurde die validate_password-Funktionalität als Komponente () neu implementiert. component_validate_password Aurora MySQL Version 8.4 erfordert eine Migration zur komponentenbasierten Implementierung.

Weitere Informationen finden Sie unter Migration der Komponenten zur Passwortvalidierung.

Beispielausgabe:

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

Auflösung

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

Hinweise

Die folgende Vorabprüfung generiert einen Hinweis, wenn die Vorabprüfung fehlschlägt, aber das Upgrade kann fortgesetzt werden.

Ungültige Rechte

Stufe der Vorabprüfung: Hinweis

Sucht nach Benutzerberechtigungen, die entfernt werden

Diese Vorabprüfung identifiziert Benutzerkonten mit Rechten, die in MySQL 8.4 entfernt oder geändert werden. Die SET_USER_ID Berechtigung wird im Rahmen des Upgrade-Vorgangs entfernt. Wenn die Rechte nicht verwendet werden, ist keine Aktion erforderlich. Stellen Sie andernfalls sicher, dass sie vor dem Upgrade nicht mehr verwendet werden, da sie sonst verloren gehen.

Beispielausgabe:

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

Auflösung

Dies ist ein informativer Hinweis — es sind keine Maßnahmen erforderlich. Die SET_USER_ID Berechtigung wird während des Upgrade-Vorgangs automatisch entfernt.

Wenn Ihre Anwendung jedoch auf diese SET_USER_ID Berechtigung angewiesen ist, überprüfen und aktualisieren Sie Ihre Anwendung vor dem Upgrade.

Fehler, Warnungen oder Hinweise

Bei den folgenden Vorprüfungen kann es je nach Ergebnis der Vorabprüfung zu einem Fehler, einer Warnung oder einem Hinweis kommen.

authentifizieren MethodUsage

Stufe der Vorabprüfung: Fehler, Warnung oder Hinweis

Suchen Sie nach veralteten oder ungültigen Benutzerauthentifizierungsmethoden

Diese Vorabprüfung identifiziert Benutzerkonten, die Authentifizierungsmethoden verwenden, die veraltet sind oder in MySQL 8.4 entfernt werden. Das mysql_native_password Authentifizierungs-Plugin ist veraltet und ab MySQL 8.4.0 standardmäßig deaktiviert. Das Plugin kann in einer future Version entfernt werden.

Der Schweregrad ist dynamisch und basiert auf dem Lebenszyklus der Funktion — Hinweis vor dem Verfall, Warnung nach dem Verfall, Fehler nach dem Entfernen.

Beispielausgabe:

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

Auflösung

Aktualisieren Sie die Benutzerkonten, um die Authentifizierung zu verwenden: caching_sha2_password

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

Für interne Aurora-Systemkonten sind keine Maßnahmen erforderlich. Sie werden während des Upgrade-Vorgangs automatisch aktualisiert. Der Versuch, diese Konten manuell zu ändern, kann zu Problemen mit der Aurora-Funktionalität führen.

Verwendung des Plugins

Stufe der Vorabprüfung: Fehler, Warnung oder Hinweis

Suchen Sie nach veralteter oder entfernter Plugin-Nutzung

Diese Vorabprüfung identifiziert Plugins, die in MySQL 8.4 veraltet oder entfernt wurden. Sie untersucht alle aktiven Plugins und meldet ihren Status als veraltet. Der Schweregrad ist je nach Funktionslebenszyklus dynamisch.

Beispielausgabe:

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

Auflösung

Deinstallieren Sie veraltete Plug-ins und installieren Sie deren Ersatzkomponenten:

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

In der folgenden Tabelle sind veraltete Plug-ins und ihre Ersatzmodule aufgeführt:

Plug-In Ersatz
keyring_file component_keyring_file
keyring_encrypted_file component_keyring_encrypted_file
keyring_oci component_keyring_oci
authentication_fido authentication_webauthn
überprüfen TableCommand

Stufe der Vorabprüfung: Fehler, Warnung oder Hinweis

Probleme, die vom Befehl check table x for upgrade gemeldet wurden

Bei dieser Vorabprüfung wird der CHECK TABLE ... FOR UPGRADE Befehl für alle Benutzertabellen ausgeführt, um strukturelle Probleme, veraltete Funktionen oder Inkompatibilitäten mit MySQL 8.4 zu identifizieren. Der Befehl führt eine umfassende Überprüfung der Tabellenstruktur und der Metadaten durch.

Im Gegensatz zu anderen Vorabprüfungen kann sie je nach CHECK TABLE-Ausgabe einen Fehler, eine Warnung oder einen Hinweis zurückgeben. Wenn bei dieser Vorabprüfung Tabellen zurückgegeben werden, überprüfen Sie diese zusammen mit dem Rückgabecode und der Meldung sorgfältig, bevor Sie das Upgrade starten.

Beispielausgabe:

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

Auflösung

Überprüfen Sie die gemeldeten Objekte und korrigieren oder entfernen Sie sie, bevor Sie das Upgrade durchführen. Häufige Probleme sind unter anderem:

  • Ansichten, die auf ungültige Tabellen oder Spalten verweisen — löschen Sie die Ansicht oder erstellen Sie sie neu.

  • Beschädigte Tabellen REPAIR TABLE — führen Sie die Tabelle aus oder erstellen Sie sie neu.

  • Trigger mit fehlendem CREATED Attribut — erstellen Sie den Trigger neu.

Weitere Informationen finden Sie unter CHECK-TABLE-Anweisung in der MySQL-Dokumentation.