סקירה כללית
משימת העברה של 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');
כדי להריץ משימת העברה ממקור שכולל מטא-נתונים כאלה, אפשר לבצע אחת מהפעולות הבאות:
צריך ליצור את המשתמשים במכונת היעד של העתק Cloud SQL לפני שמתחילים את משימת ההעברה.
כדי ליצור טיוטה של משימת העברה בלי להתחיל אותה, בוחרים באפשרות יצירה במקום באפשרות יצירה והתחלה.
במכונת היעד של Cloud SQL, יוצרים מחדש את המשתמשים ממכונת המקור של MySQL באמצעות Cloud SQL API או Google Cloud המסוף.
ברשימת משימות ההעברה או בדף של המשימה הספציפית, מתחילים את משימת ההעברה.
לפני שמגדירים את משימת ההעברה, מעדכנים את הסעיף
DEFINERל-INVOKERבמופע המקור של MySQL.