Übersicht
Bei einem MySQL-Migrationsjob werden keine Nutzerdaten migriert. Daher schlägt der Aufruf von Quellen, die von Nutzern mit der DEFINER
-Klausel definierte Metadaten enthalten, beim Aufruf auf dem neuen Cloud SQL-Replikat fehl, da die Nutzer dort noch nicht vorhanden sind.
Um festzustellen, 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-Replikatinstanz, 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 Quell-MySQL-Instanz in Ihrer Cloud SQL-Zielinstanz mithilfe der Cloud SQL API oder -Benutzeroberfläche.
Starten Sie den Migrationsjob über die Liste der Migrationsjobs oder die Seite des jeweiligen Jobs.
Aktualisieren Sie die
DEFINER
-Klausel aufINVOKER
für die Quell-MySQL-Instanz, bevor Sie den Migrationsjob einrichten.