AWS에서 생성한 RDS를 사용하다 보면 몇가지 에러를 마주할 수 있다. 그 중 내가 마주한 것은
ERROR 1146 (42S02): Table 'db.table' doesn't exist
(db 명과 table 명은 임의로 작성함)
위 에러와
This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its declaration and binary logging is enabled (you might want to use the less safe log_bin_trust_function_creators variable)
위 에러 두가지를 마주했다.
우선 첫번째는 db
라는 데이터베이스의 table
이라는 테이블이 존재하지 않는다는 것인데, 확인 결과 테이블은 정상적으로 생성이 되어 있었다.
문제는 대소문자 구분으로 인해 migration된 테이블을 인식하지 못한것이다.
일반적으로 이 문제는 lower_case_table_names
라는 global variable을 수정한다.
두번째 에러는 Function 이나 Trigger를 생성할 때 접속한 사용자가 super 권한이 없어 생성할 수 없다는 뜻이다.
이 에러 또한 마찬가지로 log_bin_trust_function_creators
라는 global variable을 수정한다.
일반적으로 global variable은 쿼리를 사용해 수정하거나 MySQL 설치 경로의 my.cnf 파일을 수정한다.
AWS에서 생성한 RDS의 경우에는 AWS에 접속하여 파라미터 그룹을 수정해야 한다.
수정 가능한 파라미터 목록이 나온다.
원하는 파라미터를 수정한 후 변경사항 저장을 클릭한다.