Amazon Relational Database Service(Amazon RDS) for MySQL DB 인스턴스의 함수, 프로시저 및 트리거를 활성화하려면 어떻게 해야 합니까?
해결 방법
Amazon RDS는 관리형 서비스이며 SYS 액세스(SUPER 권한)를 제공하지 않습니다. 이진 로깅이 켜져 있는 경우 DB 인스턴스의 사용자 지정 DB 파라미터 그룹에서 log_bin_trust_function_creators를 true로 설정합니다.
DB 파라미터 그룹을 지정하지 않고 DB 인스턴스를 생성하면 Amazon RDS에서 새 기본 DB 파라미터 그룹을 생성합니다. 자세한 내용은 DB 파라미터 그룹 작업을 참조하세요.
- DB 파라미터 그룹 생성을 생성합니다.
- 사용자 지정 DB 파라미터 그룹을 수정하고 파라미터를 log_bin_trust_function_creators=1로 설정합니다.
- Save Changes(변경 사항 저장)를 선택합니다.
참고: DB 인스턴스에 DB 파라미터 그룹을 사용하기 전에 5분 이상 기다립니다.
- 탐색 창에서 [데이터베이스(Databases)]를 선택합니다.
- DB 파라미터 그룹과 연결하려는 DB 인스턴스를 선택합니다.
- Actions(작업)를 선택하고 Modify(수정)를 선택합니다.
- DB 인스턴스와 연결하려는 파라미터 그룹을 선택합니다.
- DB 인스턴스를 재부팅합니다.
참고: 파라미터 그룹 이름은 즉시 변경되지만, 파라미터 그룹의 변경 사항은 장애 조치 없이 인스턴스를 재부팅할 때까지 적용되지 않습니다.
이미 사용자 지정 파라미터 그룹을 사용하고 있다면 2~3단계만 완료합니다. log_bin_trust_function_creators 파라미터는 동적 파라미터이므로 DB 재부팅이 필요하지 않습니다.
MySQL DB 인스턴스에 대해 자동 백업이 활성화되어 있으면 이진 로깅도 활성화됩니다. 트리거를 생성할 때 다음과 같은 오류 메시지가 표시될 수 있습니다.
"ERROR 1419 (HY000): You do not have the SUPER privilege and binary logging is enabled (you might want to use the less safe log_bin_trust_function_creators variable)"
이 오류가 발생하면 log_bin_trust_function_creators 파라미터를 1로 수정합니다. 이렇게 하면 DB 인스턴스에서 함수, 프로시저 및 트리거를 사용할 수 있습니다.
참고: log_bin_trust_function_creators=1로 설정하면 안전하지 않은 이벤트가 바이너리 로그에 기록될 수 있습니다. 이진 로깅은 명령문 기반(binlog_format=STATEMENT)입니다.
log_bin_trust_function_creators 파라미터에 대한 자세한 내용은 MySQL 설명서의 log_bin_trust_function_creators 및 저장된 프로그램 바이너리 로깅을 참조하세요.
관련 정보
mysqldump를 사용하여 Amazon RDS for MySQL DB 인스턴스로 데이터를 가져올 때 1227 및 정의자 오류를 해결하려면 어떻게 해야 하나요?