본문 바로가기
Error & Fix

MySQL 함수 프로시저 생성 변경 불가능한 현상 해결방법

by wakestand 2021. 1. 25.
반응형

MySQL에서 프로시저(Procedure) 함수(Function) 등을 만드는 경우

 

ERROR 1418: 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)

위와 같은 에러가 자꾸 뜨면서

뭘 넣어도 진행이 안되는 현상이 있는데

 

이게 MySQL에서는 기본적으로

함수와 프로시저를 생성할 수 없도록 설정이 되어있는데

 

SHOW GLOBAL VARIABLES LIKE 'LOG_BIN_TRUST_FUNCTION_CREATORS';

위 쿼리를 돌려보면

 

LOG_BIN_TRUST_FUNCTION_CREATORS 값이 OFF로 되어있는데

권한이 없어서 함수와 프로시저를 생성하지 못한 것이다

 

SET GLOBAL LOG_BIN_TRUST_FUNCTION_CREATORS = 1;

따라서 위 쿼리를 수행해서 Value를 ON으로 만들어 주면

 

정상적으로 함수와 프로시저가 생성되는 것이 보인다

반응형

댓글