본문 바로가기
CSP (Cloud Service Provider)/AWS

AWS MYSQL Dump

by BTC_물콩 2023. 8. 15.

베 하 ~~ 안녕하세요 BTC_물콩입니다!!

다들 무더위 잘 보내고 계신가용

오늘도 흥미로운 주제를 가지고 왔습니다 !!

 

[시나리오]

1. MYSQL은 EC2 서버에 설치 되어있다. (총 2대)

2. A 서버의 DB 정보를 B 서버로 전송하고 싶다.

 

[진행과정]

1. EC2에 MYSQL 설치

2. MYSQL DB 정보 Export

3. SCP 명령어를 통해 A서버에서 B서버로 DB 파일 이동

4. B 서버에서 DB 파일 Import

 

1. EC2에 MYSQL 설치

1) yum Repository 등록

sudo yum install https://dev.mysql.com/get/mysql80-community-release-el7-5.noarch.rpm

2) MYSQL 등록

sudo yum -y install mysql-community-server

mysql --version # Version 확인

3) MYSQL 시작

sudo systemctl start mysqld

4) MYSQL에 접속할 임시 비밀번호 발급

sudo grep 'temporary password' /var/log/mysqld.log

5) MYSQL 접속

mysql -u root -p

6) MYSQL 비밀번호 변경

ALTER user 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'New passwd';

FLUSH PRIVILEGES ; # 적용

 

2. MYSQL DB Export

1) A 서버에 접속하여 DB를 Export 해줍니다

    저는 test라는 DB 안에 employees라는 테이블 하나가 생성되어 있습니다 !

mysqldump -u{mysql 아이디} -p {DB 이름} > {경로}/{파일명}.sql

ex) mysqldump -uroot -p test > ./file_test.sql

해당 명령어를 사용할 때 패스워드를 CLI 창에 작성하는 것은 보안상 문제가 되기 때문에 지양하는 것을 권장드립니다!

제 DB가 file_test.sql이라는 파일로 생성된 모습을 확인할 수 있습니다 .

 

3. SCP 명령어를 통해 A 서버에서 B 서버로 file_test.sql 파일 전송

scp -i {ec2pem파일}.pem {파일명} {ec2 유저명}@{ec2 IP}:{경로}

ex) scp -i subeeeeeeeeeeen22.pem file_test.sql ec2-user@3.38.181.180:/home/ec2-user/

B서버에서 확인해보시면 해당 파일이 잘 전송되어 있는 것을 확인 할 수 있습니다.

 

4. B 서버에 DB Import

1) DB 생성

먼저 A서버의 DB 내용을 옮겨올 새로운 DB를 B 서버에 생성해줍니다.

create database test2

저는 test2라는 DB를 생성해두었습니다 !

 

2. DB Import

mysql -u{mysql ID} -p {위에서 생성한 DB명} < {경로}/{dump파일}

ex)  mysql -uroot -p test2 < /home/ec2-user/file_test.sql

 

길었던 과정이 끝이났습니다 !

 

B서버에서 show tables;를 통해 확인해보면

생성했던 test2 유 안에 서버1에서 생성했던 employees Table이 잘 들어와 있는 것을 볼 수 있습니다 !!

 

유익한 시간이었길 바래용

그럼 베 빠 ~~

 

댓글