반응형

기존 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처리로 정상적으로 처리 후 다시 원복시 사용하거나 다른 사용자가 함수를 추가하지 못하도록 막을 수 있을것이다.

반응형