mysql 함수 생성 시 에러 해결

yuns·2024년 10월 6일

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.000 sec

RDS로 만든 MySQL DB에서 시퀀스를 구현하기 위해 function을 생성하려 했을 때 나온 오류


해결방법1 (실패)

명령 프롬프트 실행 후
C:\Program Files\MySQL\MySQL Server 8.0\bin
폴더로 가기

(처음에 C:\Windows\System32 위치이면 cd.. 로 폴더를 C까지 빠져나가고, cd 폴더이름 으로 들어가기)

mysql -u root -p
입력 후 패스워드 입력해서 mysql 루트 계정 접속하기

mysql>이 뜨면
SET Global log_bin_trust_function_creators=1;
입력


(완료)

적용되었는지 확인

show variables like '%log_bin_tr%';
를 입력해서 ON이 뜨면 바뀐거다


근데..?

사용하고있는 DB에서 확인해보니 OFF로 되어있다
루트 계정에서 다 바꿔주는게 아닌건가?

localhost 로 사용하고 있는 다른 DB에서 명령어를 실행해보니, 거기는 ON으로 되어있다
아마 아마존 RDS로 만든 DB여서 변경이 안된듯하다.

해결방법2 (성공)


RDS의 파라미터 그룹에서 새로운 파라미터 그룹을 생성하고, 수정을 누른 뒤 log_bin_trust_function_creators의 값을 1로 변경한다

RDS - 데이터베이스 - 사용중인 DB선택 - 수정 - 데이터베이스 옵션에서 위에서 수정한 파라미터 그룹 선택 후 확인


수정한 뒤 데이터베이스를 재부팅 시켜줘야한다.

나는 파라미터 그룹까지 다 변경 했는데 재부팅을 안해서.. OFF로 되어있었던것

다시 실행해보니 ON으로 바뀌고 function 생성도 정상적으로 작동한다

0개의 댓글