Ringkasan
Tugas migrasi MySQL
tidak memigrasikan data pengguna. Oleh karena itu,
sumber yang berisi metadata yang ditentukan oleh pengguna dengan klausa DEFINER
akan
gagal saat dipanggil di replika Cloud SQL baru, karena pengguna belum
ada di sana.
Untuk mengidentifikasi nilai DEFINER
yang ada dalam metadata, Anda dapat menjalankan
kueri berikut di database sumber MySQL. Periksa hasil untuk entri root%localhost
atau untuk pengguna yang tidak ada di instance tujuan:
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');
Untuk menjalankan tugas migrasi dari sumber yang menyertakan metadata tersebut, Anda dapat melakukan salah satu hal berikut:
Buat pengguna di instance replika Cloud SQL tujuan sebelum memulai tugas migrasi.
Membuat tugas migrasi tanpa memulainya. Artinya, pilih Buat, bukan Buat & Mulai.
Buat pengguna dari instance MySQL sumber di instance Cloud SQL tujuan menggunakan UI atau Cloud SQL API.
Mulai tugas migrasi dari daftar tugas migrasi atau halaman tugas tertentu.
Perbarui klausa
DEFINER
menjadiINVOKER
pada instance MySQL sumber sebelum menyiapkan tugas migrasi.