Databases/Mysql
Mysql - function 생성시 에러가 발생하는 경우(This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its declaration and binary logging is enabled)
Park.S.W
2020. 6. 24. 12:18
반응형
기존 5버전대 mysql을 쓰다가 해당 구조만 가져올 일이 있어서 그대로 백업한 .sql파일을 복원 하는 과정에서 아래와같은 에러가 발생하였다.
ERROR 1418 (HY000): 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)
함수 생성시 옵션 에러라고 하는데 버전이 올라가면서 기본값이 변경된 것 같다.
발생하는 에러로그를 토대로 검색해보니 함수 생성시 생성 제약처리를 할 수 있었고, 생성할 수 있는 부분이 OFF처리 되어있는걸 볼 수 있었다.
log_bin_trust_function_creators 옵션 확인하기
show global variables like 'log_bin_trust_function_creators';
해결방법
설치한 Mysql은 8버전대였고 아래의 쿼리를 실행 후 동일한 .sql파일 실행시 정상적으로 동작하였다.
SET GLOBAL log_bin_trust_function_creators = 1; //ON
#SET GLOBAL log_bin_trust_function_creators = 0; //OFF
1은 ON처리로 함수 생성을 시킬수 있다.
0은 OFF처리로 정상적으로 처리 후 다시 원복시 사용하거나 다른 사용자가 함수를 추가하지 못하도록 막을 수 있을것이다.
반응형