본문 바로가기
MySQL

[MySQL] 트리거 생성 시 Error Code : 1419 대처하기

by 네모세모동동 2024. 4. 4.

 

트리거를 생성하려고 하는데

 

Error Code: 1419. You do not have the SUPER privilege and binary logging is enabled (you *might* want to use the less safe log_bin_trust_function_creators variable)

 

1419 에러가 발생했다🥲

 

찾아보니 SUPER 권한이 없는 유저에게 트리거를 생성할 권한이 없어서 발생하는 오류였다.

 

 

해결 방법. log_bin_trust_function_creators 옵션 상태 변경하기

 

루트 계정으로 로그인하고 

현재 'log_bin_trust_function_creators'가 ON 인지  OFF 인지 확인해본다.

show global variables like 'log_bin_trust_function_creators';

 

 

OFF라면 아래 코드들 중 하나의 명령어를 실행하면 ON으로 변경할 수 있다.

set global log_bin_trust_function_creators=1;
set global log_bin_trust_function_creators=ON;

 

❗트리거 생성 성공 후, 안정성을 위해 다시 OFF로 변경해 두었다.

 

log_bin_trust_function_creators

log_bin_trust_function_creators 옵션은 MySQL이 function, trigger 생성에 대한 제약을 강제할 수 있는 기능이다.

 

해당 옵션의 기본값은 OFF이며, OFF상태의 경우 권한이 있더라도 Trigger, Function을 생성할 수 없다!

 

결론적으로 해당 옵션이 OFF 상태일 경우, 루트권한이 없는 사용자가가 생성한 function을 일반 사용가 실행할 수 없게된다.

 

 

 


[출처]

'MySQL' 카테고리의 다른 글

[MySQL] ROUND, CEILING, FLOOR 함수  (0) 2024.07.29
[MySQL] 재귀쿼리 WITH RECURSIVE  (0) 2024.07.06