개발 서버를 AWS에서 가비아로 이전하는 일이 생겼다. MySQL DUMP를 사용해서 쉽게 이전을 해보도록 하자.
mysqldump --no-tablespaces --set-gtid-purged=OFF --default-character-set=utf8mb4 -h <원본서버 엔드포인트> -P <port> -u <username> -p<password> <디비 이름> > db_dump.sql
-p 옵션이 좀 특이한데 보통 공백으로 구분하는데 이부분만 붙혀있다. 여태 개발하면서 이런 경우를 처음보는데 오타가 아니니까 믿고 쓰도록 하자
docker exec -i <컨테이너 Id> mysql -u <username> -p<password> kdmp_dev < db_dump.sql
여기서 username과 password는 원본 mysql의 정보이고 일치하지 않는다면 덤프가 되지 않는다. 이 인증정보는 내가 처음에 도커로 mysql에 설정한 사용자와 패스워드와는 무관하다. (이점을 헷갈리지 말아야 한다.)
역시 -p 옵션에서 공백으로 구분하지 않는다. dump하는데 시간이 좀 걸리니 참고바람
덤프가 잘 됐는지 컨테이너에 직접 들어가서 확인해보자
docker exec -it <컨테이너 Id> mysql -u dev -p<password>
USE my_dev;
SHOW TABLES;
완료