상세 컨텐츠

본문 제목

[mySQL] mySQL function 생성 시 1418에러 / 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)

DataBase_SQL

by Jjiveloper 2021. 4. 29. 23:31

본문

728x90

함수를 만드려고했는데 apply 시 에러가 났다.

내 함수 코드는 이론상 문제없는데(진쨔 >.<) function이 안만들어지는 것 보면 내문제가 아닌 것 같아서 구글링

 

에러 코드 맨 뒤에 힌트가 있었다.

(you *might* want to use the less safe log_bin_trust_function_creators variable)

 

위의 설정이 꺼져있어서 함수가 안만들어지는 것이였음. 

 

show global variables like 'log_bin_trust_function_creators'; 

위의 쿼리를 입력 후 실행해보면

이렇게 결과가 조회된다. 지금은 설정 바꾸고 난 후라 ON으로 되어있는데

해당 설정이 OFF 거나 0 이면 이 설정때문에 함수가 안만들어 지는거다.

 

SET GLOBAL log_bin_trust_function_creators = 1;
--또는
SET GLOBAL log_bin_trust_function_creators = 'ON';

따라서 설정을 다시 켜주자. 

위의 코드 중 한개만 쓰면 된다. 같은 의미임

그럼 아까 본대로 이렇게 설정이되고 sql 함수도 정상적으로 저장된다.


set global 쿼리문을 실행해서 권한을 바꾸려고 하는데

Error Code: 1227. Access denied; you need (at least one of) the SUPER or SYSTEM_VARIABLES_ADMIN privilege(s) for this operation

에러가 난다면 아래 글을 참고하자. 

 

xively.tistory.com/26

 

[aws rds 파라미터 설정] mysql 권한 에러 / Error Code: 1227. Access denied; you need (at least one of) the SUPER or SYS

mySQL global 설정 시 Error Code: 1227. Access denied; you need (at least one of) the SUPER or SYSTEM_VARIABLES_ADMIN privilege(s) for this operation 에러 났을 때. mysql에서 function 저장하려는데 안..

xively.tistory.com

 

728x90
반응형

관련글 더보기