MySQL-Migrationsjob mit Metadaten mit DEFINER-Klausel erstellen und ausführen

Bei einem MySQL-Migrationsjob werden Nutzerkonten und Anmeldedaten nicht migriert. Quellen, die von Nutzern mit der DEFINER-Klausel definierte Metadaten enthalten, schlagen fehl, wenn sie auf dem neuen Cloud SQL-Replikat aufgerufen werden, da die Nutzer dort noch nicht vorhanden sind.

Fragen Sie Ihre MySQL-Quelldatenbank ab, um herauszufinden, welche DEFINER-Werte in Ihren Metadaten vorhanden sind. 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');

Wenn Sie einen Migrationsjob von einer Quelle ausführen möchten, die solche Metadaten enthält, haben Sie folgende Möglichkeiten:

  1. Erstellen Sie die Nutzer in der Cloud SQL-Zielreplikatinstanz, bevor Sie den Migrationsjob starten.

    1. Wenn Sie einen Migrationsjobentwurf erstellen möchten, ohne ihn zu starten, wählen Sie Erstellen anstelle von Erstellen und starten aus.

    2. Erstellen Sie die Nutzer aus Ihrer MySQL-Quellinstanz in Ihrer Cloud SQL-Zielinstanz mit der Cloud SQL API oder der Google Cloud Console neu.

    3. Starten Sie den Migrationsjob über die Liste der Migrationsjobs oder die Seite für den jeweiligen Job.

  2. Aktualisieren Sie die DEFINER-Anweisung in der MySQL-Quellinstanz auf INVOKER, bevor Sie den Migrationsjob einrichten.