방금 aws MySQL rds 인스턴스를 만들고 나서, 로컬에 있는 DB…

방금 aws MySQL rds 인스턴스를 만들고 나서, 로컬에 있는 DB 를 rds 로 마이그레이션 했습니다. 잘 되긴 했는데, 사소한(?) 오류가 있어 남겨놓습니다.

https://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/UserGuide/MySQL.Procedural.Importing.SmallExisting.html

위의 지침대로 하였는데요. local 은 CentOS 7.2 + MariaDB 10.1 조합입니다. 반면에 rds 는 MySQL 5.7 로 만들었고요. (로컬도 곧 MySQL 5.7 로 마이그레이션 예정이라서)

이 상황에서 지침대로 mysqldump 를 실행시키면 아래와 같은 오류가 발생합니다.

ERROR 1227 (42000) at line 1069: Access denied; you need (at least one of) the SUPER privilege(s) for this operation

그런데…rds 가보면…잘 이관되어 있습니다?!!! 몇번을 해보았으나 이관 잘됩니다. 그런데 꼭 마지막에 저런 오류를 뱉네요.

파이프를 기준으로 앞 뒤 명령을 따로 실행시켜보니 파이프 뒤쪽 명령문(=rds 접속부분) 에서 발생하는 오류인데…원인은 모르겠습니다.

파이프 뒤쪽 명령어의 user 정보에는 rds 인스턴스 생성시에 만든 사용자를 입력했습니다. 제가 알기로 rds 는 root 권한을 주지 않는것으로 알고 있거든요.

무튼…네…그렇습니다. 오류가 발생하지만 마이그레이션은 잘 됩니다. 혹시나 이게 다른 분들에게도 공통적으로 일어나는 상황이라면…웹 페이지의 내용을 좀 수정하는것이 좋겠다 싶기도 하네요. ‘ 3’

6 thoughts on “방금 aws MySQL rds 인스턴스를 만들고 나서, 로컬에 있는 DB…

  1. 그외 다른 방법도 있을것 같습니다. dump 파일을 열고 root 로 되어 있는 부분을 모두 rds 사용자 이름으로 바꾸면 될것 같기도 하네요. 해보고 다시 말씀드리겠습니다.

  2. 아아, 해결되었습니다. 일단 문제의 발단은, rds 인스턴스를 생성할때 Master Username 을 root 가 아닌 다른 이름으로 했기 때문입니다. 그로 인해 덤프 파일의 SET DEFINER=`root` 가 들어간 부분에서 오류가 발생했던 것이었습니다. 그 와중에 데이터 입력부분은 덤프문 앞쪽에 있다보니 데이터는 잘 들어왔던 것이고요. (사실 잘 이라고도 할 수 없긴 한데…) 저는 그냥 덤프문의 root 관련 부분을 rds 의 master username 으로 변경하는 것으로 해결하였습니다. 다른분들은 저 같은 실수 하지 마시길 oTL….아, 해결의 단초를 주신 오아랑 님께도 감사의 말씀 드립니다.

답글 남기기

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다.