Criar e executar um job de migração do MySQL que contenha metadados com uma cláusula DEFINER

Um job de migração do MySQL não migra contas de usuário e logins. As origens que contêm metadados definidos por usuários com a cláusula DEFINER falham quando invocadas na nova réplica do Cloud SQL, porque os usuários ainda não existem.

Para identificar quais valores DEFINER existem nos seus metadados, consulte o banco de dados de origem do MySQL. Verifique os resultados de entradas para root%localhost ou para usuários que não existem na instância 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 executar um job de migração de uma origem que inclua esses metadados, faça uma destas ações:

  1. Crie os usuários na instância de réplica de destino do Cloud SQL antes de iniciar o job de migração.

    1. Para criar um job de migração de rascunho sem iniciá-lo, selecione Criar em vez de Criar e iniciar.

    2. Na instância de destino do Cloud SQL, recrie os usuários da instância de origem do MySQL usando a API Cloud SQL ou o Google Cloud console.

    3. Na lista de jobs de migração ou na página do job específico, inicie o job de migração.

  2. Atualize a cláusula DEFINER para INVOKER na instância de origem do MySQL antes de configurar o job de migração.