로컬 데이터(mysql)를 백업하고 AWS RDS에 복원하고 싶었음
그런데 복원하고 나면 자꾸 해당 테이블이 empty table이라고 떴던 것..
아래의 방식대로 하니까 오류가 해결되었음
(참고로 source 제외하고는 모두 cmd에서 실행해야 함. powershell에서는 안 됨!!)
ⅰ. 로컬에서 데이터 sql 파일로 저장하기
C:\Users\blahblah\data>mysqldump -u root -p <dbname> <tablename> > <tablename>.sql -> 이것과 source > def.sql 과의 차이?
ⅱ. 같은 디렉토리에서 AWS RDS에 접속하기
C:\Users\blahblah\data>mysql --default-character-set=utf8mb4 -h <endpoint> -P <port> -u <username> -p<password> <dbname>
ⅲ. 디렉토리에서 source로 데이터 파일 복원하기
mysql> source <tablename>.sql
mysqldump --set-gtid-purged=OFF --default-character-set=utf8mb4 -h <endpoint> -P <port> -u <username> -p<password> <dbname> <tablename> > <tablename>.sql
mysqldump : MySQL DB 덤프하기 위한 유틸리티
--set-gtid-purged=OFF : GTID 관련 데이터를 덤프에서 제외
--default-character-set=utf8mb4 : 덤프 파일의 문자 인코딩을 utf8mb4로 설정
-h <endpoint> : DB 서버의 호스트명 또는 IP 주소
-P <port> : DB 서버의 포트 번호
-u <username> : DB 서버에 접속할 사용자 이름
-p<password> : 사용자 패스워드
<dbname> : 백업하려는 DB 이름
<tablename> : 백업하려는 테이블 이름
> <tablename>.sql : mysqldump로 생성된 출력을 로컬의 <tablename>.sql 파일로 저장