Présentation
Une tâche de migration MySQL ne migre pas les données utilisateur. Par conséquent, les sources contenant des métadonnées définies par les utilisateurs avec la clause DEFINER
échoueront lorsqu'elles seront appelées sur le nouveau réplica Cloud SQL, car les utilisateurs n'existent pas encore dans l'instance cible.
Pour identifier les valeurs DEFINER
présentes dans vos métadonnées, vous pouvez exécuter les requêtes suivantes sur votre base de données source MySQL. Vérifiez les résultats pour les entrées root%localhost
ou pour les utilisateurs qui n'existent pas dans l'instance de destination:
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');
Pour exécuter une tâche de migration à partir d'une source qui inclut ces métadonnées, vous pouvez effectuer l'une des opérations suivantes:
Créez les utilisateurs sur l'instance de réplication Cloud SQL de destination avant de démarrer votre tâche de migration.
Créez un job de migration sans le démarrer. Autrement dit, sélectionnez Créer au lieu de Créer et démarrer.
Créez les utilisateurs à partir de votre instance MySQL source sur votre instance Cloud SQL de destination à l'aide de l'API ou de l'UI Cloud SQL.
Démarrez la tâche de migration à partir de la liste des tâches de migration ou de la page de la tâche spécifique.
Mettez à jour la clause
DEFINER
surINVOKER
sur votre instance MySQL source avant de configurer votre tâche de migration.