본문 바로가기

Database/MariaDB(Mysql)

mysql(mariadb) 데이터 이전시 function 생성 오류(This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its declaration and binary logging is enabled)

This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its declaration and binary logging is enabled

 

mysql 5.6 버전에서 8버전으로 마이그레이션 작업중 아래와 같이 오류를 표시하고 작업이 중단되었다.

해당오류는 함수(Function) 생성시 제약을 하는 옵션이 설정되어 있지 않아 함수를 생성하지 못한다는 내용이므로 

서버내에서 해당 옵션을 설정하여 준다.

This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its declaration and binary logging is enabled

 

1. Mysql 옵션내에서 log_bin_trust_function_creators  옵션을 수정하여야 한다.

-  현재 서버가 AWS내에 RDS 서버이므로 서버내 파라미터 그룹에서 위 옵션으로 검색하여 값을 변경한다.

값 : 0(유저가 직접 function 생성 불가) , 1(유저가 직접 function 생성 가능)

- 서버이전시 직접 function을 생성해야 하므로 값을 1로 설정한다.

- 아래와 같이 default 파라메터를 그대로 사용하는 경우는 수정할 수 없으므로 복사해서 사용해야 한다.