Visão geral
Um job de migração do MySQL
não migra dados do usuário. Portanto,
as fontes que contêm metadados definidos pelos usuários com a cláusula DEFINER
vão
falhar 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, execute as
seguintes consultas no seu 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:
Crie os usuários na instância de réplica do Cloud SQL de destino antes de iniciar o job de migração.
Crie um job de migração sem iniciá-lo. Ou seja, escolha Criar em vez de Criar e iniciar.
Crie os usuários da instância de origem do MySQL na instância de destino do Cloud SQL usando a API ou UI do Cloud SQL.
Inicie o job de migração na lista de jobs de migração ou na página específica do job.
Atualize a cláusula
DEFINER
paraINVOKER
na instância de origem do MySQL antes de configurar o job de migração.