Crea ed esegui un job di migrazione MySQL contenente metadati con una clausola DEFINER

Un job di migrazione MySQL non esegue la migrazione di account utente e accessi. Le origini che contengono metadati definiti dagli utenti con la clausola DEFINER non vanno a buon fine se richiamate sulla nuova replica Cloud SQL, perché gli utenti non esistono ancora lì.

Per identificare i valori DEFINER presenti nei metadati, esegui una query sul database di origine MySQL. Controlla i risultati per le voci relative a root%localhost o agli utenti che non esistono nell'istanza di destinazione:

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

Per eseguire un job di migrazione da un'origine che include questi metadati, esegui una delle seguenti operazioni:

  1. Crea gli utenti nell'istanza di replica Cloud SQL di destinazione prima di avviare il job di migrazione.

    1. Per creare una bozza di job di migrazione senza avviarlo, seleziona Crea anziché Crea e avvia.

    2. Nell'istanza Cloud SQL di destinazione, ricrea gli utenti dell'istanza MySQL di origine utilizzando l'API Cloud SQL o la console Google Cloud .

    3. Dall'elenco dei job di migrazione o dalla pagina del job specifico, avvia il job di migrazione.

  2. Aggiorna la clausola DEFINER in INVOKER nell'istanza MySQL di origine prima di configurare il job di migrazione.