Crea y ejecuta un trabajo de migración de MySQL que contenga metadatos con una cláusula DEFINER

Descripción general

Un trabajo de migración de MySQL no migra datos del usuario. Por lo tanto, las fuentes que contienen metadatos definidos por el usuario con la cláusula DEFINER fallan cuando se invocan en la nueva réplica de Cloud SQL, ya que los usuarios aún no existen allí.

Para identificar qué valores de DEFINER existen en tus metadatos, consulta tu base de datos fuente de MySQL. Verifica los resultados para ver si hay entradas de root%localhost o de usuarios que no existen en la instancia de destino:

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

Para ejecutar un trabajo de migración desde una fuente que incluye esos metadatos, realiza una de las siguientes acciones:

  • Crea los usuarios en la instancia de réplica de Cloud SQL de destino antes de iniciar tu trabajo de migración.

    1. Para crear un borrador del trabajo de migración sin iniciarlo, selecciona Crear en lugar de Crear y comenzar.

    2. En tu instancia de Cloud SQL de destino, vuelve a crear los usuarios de tu instancia de MySQL de origen con la API de Cloud SQL o la Google Cloud consola.

    3. En la lista de trabajos de migración o en la página del trabajo específico, inicia el trabajo de migración.

  • Actualiza la cláusula DEFINER a INVOKER en tu instancia de MySQL de origen antes de configurar tu trabajo de migración.