MySQL Error) 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)

반응형

 

Error

데이터베이스 백업 후 임포트 시 다음과 같은 오류가 출력되었다.

Creating schema ~~~

10:37:25 Restoring Dump20230607.sql
Running: mysql.exe
--defaults-file="~~~" --protocol=tcp --host=localhost
--user=root --port=3306 --default-character-set=utf8
--comments --database=~~~  < "~~~\\Dump20230607.sql"
ERROR 1418 (HY000) at line 3491:
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)

Operation failed with exitcode 1
10:37:26 Import of Dump20230607.sql has finished with 1 errors

해결 방법

  • MySQL에서 log_bin_trust_function_creators 라는 시스템 변수는 저장된 함수 및 트리거의 생성 및 변경에 SUPER 권한이 필요한지 여부를 제어하는 기능을 함
  • 기본적으로 이 변수는 '0' (OFF, 비활성화)으로 설정되며, SUPER 권한이 있는 사용자만이 활성화된 저장된 함수 및 트리거를 생성하거나 변경할 수 있음을 의미함
  • 즉, 해당 시스템 변수의 설정 값을 '1' (ON, 활성화)로 설정하면 됨
use mysql;

-- 함수 생성 여부 보기 OFF 시 ON으로 변경
show global variables like 'log_bin_trust_function_creators';

-- 함수 생성 여부 설정 ON 으로 변경하여 함수를 생성할 수 있도록 변경
SET GLOBAL log_bin_trust_function_creators = ON;

참고

반응형