יצירה והפעלה של משימת העברה של MySQL שמכילה מטא-נתונים עם פסקה של DEFINER

משימת העברה של MySQL לא מעבירה חשבון והתחברות. מקורות שמכילים מטא-נתונים שהוגדרו על ידי משתמשים עם הסעיף DEFINER נכשלים כשמפעילים אותם ברפליקה החדשה של Cloud SQL, כי המשתמשים עדיין לא קיימים שם.

כדי לזהות אילו ערכי DEFINER קיימים במטא-נתונים, שולחים שאילתה למסד הנתונים של מקור MySQL. בודקים את התוצאות של הרשומות של root%localhost או של משתמשים שלא קיימים במכונה של היעד:

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

כדי להריץ משימת העברה ממקור שכולל מטא-נתונים כאלה, צריך לבצע אחת מהפעולות הבאות:

  1. צריך ליצור את המשתמשים במכונת היעד של העותק המשוכפל ב-Cloud SQL לפני שמתחילים את משימת ההעברה.

    1. כדי ליצור טיוטה של משימת העברה בלי להתחיל אותה, בוחרים באפשרות יצירה במקום באפשרות יצירה והתחלה.

    2. במכונה של Cloud SQL ביעד, יוצרים מחדש את המשתמשים ממכונת המקור של MySQL באמצעות Cloud SQL API או מסוף Google Cloud .

    3. מתחילים את עבודת ההעברה מרשימת עבודות ההעברה או מהדף של העבודה הספציפית.

  2. לפני שמגדירים את משימת ההעברה, מעדכנים את הסעיף DEFINER ל-INVOKER במכונה של MySQL במקור.