본문 바로가기

개발/DB

[MySQL] 함수 생성 오류 - ERROR 1418: This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA...

1. 에러 내용

MySQL Workbench에서 Data Import를 하던 중,

덤프(.sql)파일 안의 함수를 생성하는 부분에서 에러가 발생했다.

 

찾아보니 이 문제는 super 권한이 없는 user가 trigger/function을 생성할 수 없기 때문에 생기는 에러로, 

log_bin_trust_function_creators 옵션을 OFF -> ON으로 바꿔주면 해결할 수 있다.

 

에러 메세지

 

 

2. 해결 방법

1. 터미널에서 관리자 계정(root)으로 mysql에 접속해준다.

mysql -u root -p mysql

 

 

2. 프롬프트가 mysql> 로 활성화 되면, 다음 명령어를 입력한다.

show global variables like 'log_bin_trust_function_creators';

그러면 다음과 같은 표가 나오는데, Value가 OFF로 되어있을 것이다.

 

3. 다음 명령어를 통해 위의 옵션을 ON으로 활성화시킨다.

SET GLOBAL log_bin_trust_function_creators='ON';

 

4. mysql 접속을 종료한다.

quit;