DB/MySQL

[MySQL] ERROR 1231 "NO_AUTO_CREATE_USER" 해결

야곰야곰+책벌레 2022. 6. 13. 09:23
728x90
반응형

MySQL이나 MariaDB에서 dump파일을 restore 할 때 버전이 높거나 맞지 않는 경우 해당 오류가 발생하는 것 같다.

Variable 'sql_mode' can't be set to the value of 'NO_AUTO_CREATE_USER'"

dump를 한 파일은 MySQL 5.6 이었고 restore 하려고 하는 version은 MySQL 8.0과 MariaDB 10.6이었다.

우선 새로운 Version에는 'NO_AUTO_CREATE_USER" 옵션이 없다.

에디터로 해당 덤프 파일을 열어서 "NO_AUTO_CREATE_USER"를 삭제한다. (에디터의 모두 변경을 이용하면 편리하다.)

삭제 후에는 다음과 같은 에러가 발생했다.

ERROR 1418 (HY000) : This function hasn 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)

잠시 당황했지만, 검색을 하고 보니 간단한 설정으로 해결되었다.

쿼리 창에 아래와 같이 쿼리를 날려준 뒤에 restore를 실행하면 제대로 import 되었다.

SET GLOBAL log_bin_trust_function_creators = 1;

특정 버전에서 계속해서 restore가 실패해서 고민이었는데, 잘 해결되었다.

728x90
반응형

'DB > MySQL' 카테고리의 다른 글

[MySQL] SELECT 결과 INSERT 하기  (0) 2021.09.02
[MySQL] AUTO_INCREMENT 설정 및 초기화  (0) 2021.09.01
[MySQL] 외래키(FOREIGN KEY) 지정  (0) 2021.08.30
[MySQL] LIKE 구문  (0) 2021.06.04
[MySQL] SHOW TABLES 테이블 정보 확인  (0) 2021.05.25