Übersicht
Bei einem MySQL-Migrationsjob
werden keine Nutzerdaten migriert. Daher schlagen Quellen, die von Nutzern mit der DEFINER-Klausel definierte Metadaten enthalten, fehl, wenn sie in der neuen Cloud SQL-Replikatinstanz aufgerufen werden, da die Nutzer dort noch nicht vorhanden sind.
Um herauszufinden, welche DEFINER-Werte in Ihren Metadaten vorhanden sind, können Sie die folgenden Abfragen in Ihrer MySQL-Quelldatenbank ausführen. Prüfen Sie die Ergebnisse auf Einträge für root%localhost oder für Nutzer, die in der Zielinstanz nicht vorhanden sind:
SELECT DISTINCT DEFINER FROM INFORMATION_SCHEMA.EVENTS WHERE EVENT_SCHEMA NOT
IN ('mysql', 'sys');
SELECT DISTINCT DEFINER FROM INFORMATION_SCHEMA.ROUTINES WHERE ROUTINE_SCHEMA NOT
IN ('mysql', 'sys');
SELECT DISTINCT DEFINER FROM INFORMATION_SCHEMA.TRIGGERS WHERE TRIGGER_SCHEMA NOT
IN ('mysql', 'sys');
SELECT DISTINCT DEFINER FROM INFORMATION_SCHEMA.VIEWS WHERE TABLE_SCHEMA NOT
IN ('mysql', 'sys');
Um einen Migrationsjob von einer Quelle auszuführen, die solche Metadaten enthält, haben Sie folgende Möglichkeiten:
Erstellen Sie die Nutzer in der Cloud SQL-Zielreplikatinstanz, bevor Sie den Migrationsjob starten.
Erstellen Sie einen Migrationsjob, ohne ihn zu starten. Wählen Sie also Erstellen anstelle von Erstellen und starten aus.
Erstellen Sie die Nutzer aus Ihrer MySQL-Quellinstanz in Ihrer Cloud SQL-Zielinstanz mit der Cloud SQL API oder der Cloud SQL-UI.
Starten Sie den Migrationsjob in der Liste der Migrationsjobs oder auf der Seite des jeweiligen Jobs.
Aktualisieren Sie die
DEFINER-Klausel in Ihrer MySQL-Quellinstanz aufINVOKER, bevor Sie den Migrationsjob einrichten.