mysqldump를 사용하여 MySQL 인스턴스용 Amazon Relational Database Service(Amazon RDS)로 데이터를 가져오려고 하면 다음과 유사한 오류가 표시됩니다.

Definer error: example: /*!50003 CREATE*/ /*!50017 DEFINER=`rdsadmin`@`localhost`*/ /*!50003 TRIGGER customer_update AFTER UPDATE ON `customer` FOR EACH ROW

Definer 오류는 MySQL이 데이터베이스 사용자 아래에 객체를 생성하려고 할 때 해당 데이터베이스 사용자가 대상 데이터베이스에 없는 경우 트리거됩니다. MySQL이 Amazon RDS에 대해 허용되지 않는 localhost의 사용자를 생성하려는 경우에도 Amazon RDS에 수퍼유저 권한이 없기 때문에 유사한 오류가 발생할 수 있습니다.

Definer 오류는 여러 방법으로 해결될 수 있습니다.

1.    다음 Definer 행을 제거합니다.

/*!50017 DEFINER=`rdsadmin`@`localhost`*/

이 행은 다음과 같아야 합니다.

/*!50003 CREATE*/ /*!50003 TRIGGER customer_update AFTER UPDATE ON `customer` FOR EACH ROW

2.    Definer 사용자 이름 "rdsadmin" 및 "localhost"를 각각 "masteruser"/ 및 "%"로 바꿉니다.

/*!50003 CREATE*/ /*!50017 DEFINER=`masteruser`@`%`*/ /*!50003 TRIGGER customer_update AFTER UPDATE ON `customer` FOR EACH ROW

3.    definer 옵션이 없는 덤프 파일을 생성하거나 다시 생성합니다.

MySQL 덤프 유틸리티는 DEFINER를 제거하는 옵션을 제공하지 않습니다. 일부 MySQL 클라이언트는 논리적 백업을 생성할 때 definer를 무시하는 옵션을 제공하지만 기본적으로 수행되지는 않습니다. 기본 설정된 MySQL 클라이언트의 설명서를 검토하여 DEFINER를 무시하는 옵션을 사용할 수 있는지 확인하십시오. MySQL 명령줄 클라이언트에서는 definer를 제외할 수 없지만 클라이언트에서 타사 도구를 사용하여 DEFINER를 제거하거나 사용자 이름과 호스트를 찾아서 대체할 수 있습니다.


페이지 내용이 도움이 되었습니까? | 아니요

AWS 지원 지식 센터로 돌아가기

도움이 필요하십니까? AWS 지원 센터를 방문하십시오.

게시된 날짜: 2016년 6월 27일

업데이트된 날짜: 2018년 7월 2일