1. MySQL 5.1 이상 서버에서 Trigger 생성이 안되는 경우 처리법
일반적으로 SUPER권한을 가지지 않은 account의 경우 다음과 같은 에러가 발생할 수 있다.
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)
(0 ms taken)
에러를 발생하는 계정이 TRIGGER 권한을 가지고 있어도, 트리거 생성을 못하는 경우인것인데,
이것은 바로 위의 로그에서도 나왔듯이 log_bin_trust_function_creators 속성 때문에 발생한 것이다.
아마 확인하면 이 variable의 속성값이 OFF로 나타날 것이다.
이 속성은 MySQL 이 stored function과 trigger 생성에 제약을 강제할 수 있는 기능을 가진 속성으로
OFF 로 설정되면 TRIGGER권한을 가지고 있어도 생성할 수가 없다.
log_bin_trust_function_creators 값은 default가 OFF 이다.
하지만, 이 옵션을 enable하게 되면 MySQL 입장에서 function에 대한 안정성 체크를 하지 않게 된다.
해결법:
1. 안정성 체크는 내가 한다. 파라메터를 수정한다.
log_bin_trust_function_creators 속성을 ON으로 해주면 일반 계정으로도 생성이 가능하므로, 수정해 주도록 한다.
dynamic하게 수정이 가능하므로 서버를 restart할 필요는 없다.
mysql> set global log_bin_trust_function_creators = on;
2. 생성 작업을 하는 계정에 super권한을 주고 생성한다.
참고:
log-bin-trust-routine-creators 설정은 이전 버젼에 있는 것으로 같은 기능을 수행하는 것이기는 하나 현재 최신 버젼에는 deprecate되었다.
'MySQL 에러 처리법' 카테고리의 다른 글
6. Fail to open log (0) | 2010.09.14 |
---|---|
5. The total number of locks exceeds the lock table size (0) | 2010.09.14 |
4. replication 시 에러 발생 (2) | 2010.07.12 |
2. ibbackup을 이용하여 백업 하는 경우에 발생하는 에러의 경우 (0) | 2010.03.06 |
1. MySQL 서버 접근이 안되는 경우? (0) | 2010.01.08 |