이번 글에서는 DB작업을 하다보면 빈번히 발생하는 DB백업 및 dump를 생성하는 명령어에 대해서 알아보겠다. 또, 생성한 dump를 import하고 서버에서 로컬로 가져오는 방법도 알아보자.
참고로 나의 서버 및 로컬 pc의 버전은 아래와 같다.
- os (로컬): WSL (windows10 pro)
- os (EC2): Amazon Linux
- mysql (로컬): Ver 8.0.31-0ubuntu0.20.04.1 for Linux
- mysql (EC2): Ver 14.14 Distrib 5.7.35, for Linux
DB가 있는 서버에 접속한 후 아래의 명령어를 입력한다.
mysqldump -u{mysql 아이디} -p{mysql 비밀번호} {DB 이름} > {경로 + 파일명}.sql
ex) mysqldump -uroot -p1234 someDB > ./file_name.sql
보통 서버는 클라우드 환경에 많이 구축하니, 원격서버에서 로컬로 특정 파일을 가져와야 한다.
그럴 때는 아래의 명령어로 위에서 백업한 DB를 로컬로 가져오자.
scp -i {ec2pem파일}.pem {ec2 유저명}@{ec2 IP}:{ec2내에 복사하고자 하는 파일} {가져오고자 하는 로컬의 경로}
ex) scp -i ec2.pem ec2-user@123.4.5.6:/home/ec2-user/file_name.sql .
Dump파일을 덮어씌울 DB를 먼저 생성해준다.
CREATE DATABASE {DB이름};
mysql -u{mysql ID} -p{mysql 비밀번호} {위에서 생성한 DB명} < {dump파일}
ex) mysql -uroot -p1234 db_name < ./file_name.sql
이렇게 이번 글에서는 EC2에 있는 DB를 로컬로 그대로 가져오는 시나리오를 통해서 DB를 export하고 import하는 것에 대해서 알아보았다.
피드백 및 질문은 언제나 환영한다. 🧐