DEFINER 절이 있는 메타데이터가 포함된 MySQL 마이그레이션 작업 만들기 및 실행

개요

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 복제본 인스턴스에서 사용자를 만듭니다.

    1. 마이그레이션 작업을 시작하지 않고 초안을 만들려면 만들기 및 시작 대신 만들기를 선택합니다.

    2. 대상 Cloud SQL 인스턴스에서 Cloud SQL API 또는 Google Cloud 콘솔을 사용하여 소스 MySQL 인스턴스의 사용자를 다시 만듭니다.

    3. 마이그레이션 작업 목록 또는 특정 작업 페이지에서 마이그레이션 작업을 시작합니다.

  • 마이그레이션 작업을 설정하기 전에 소스 MySQL 인스턴스에서 DEFINER 절을 INVOKER로 업데이트합니다.