[DB] DB 백업 파일을 Docker 에 띄운 MySQL에 복원하기

춤추는 머쉬룸·2024년 1월 10일
0

2024 CNU NHN ACADEMY

목록 보기
2/15
post-thumbnail

후 힘든 여정이었다...

로컬에 저장되어 있는 xxx.sql 파일을 도커 컨테이너의 MySQL에 복원하려고 한다. 처음에는 그냥 Workbench 의 Data Restore 를 통해 복구하려고 했는데, 왜인지 해당 파일을 찾을 수 없다는 오류가 떴다.
그렇게 해서 알게된 사실! 로컬 파일을 그냥 도커에 가져올 수는 없지ㅎㅎ

그래서 도커 내의 경로에 해당 파일을 복사 한 후 도커 내의 MySQL에 복원하는 방법을 거쳤다.

1. 로컬 파일을 도커 내 경로에 복사하기

docker cp {로컬 파일 경로} {컨테이너 이름}:{컨테이너 내 복사할 경로}

<example>
docker cp C:\Users\SEC\Downloads\DMMDB_20231012.sql mysql82:/var/opt

나는 로컬의 Downloads 내에 있는 xxx.sqp 파일을 mysql82 라는 컨테이너 내의 /var/opt 경로에 복사했다.


2. 미리 복원에 사용할 데이터베이스 만들기

CREATE DATABASE DatamotionMovieDatabase;

** cmd가 아닌 sql 내에서 하는 겁니다!


3. MySQL을 bash 로 접속하기

docker exec -it {컨테이너 이름} bash

<example>
docker exec -it mysql82 bash

나는 mysql82 라는 이름의 컨테이너에 접속했다.


4. 만들어 둔 데이터베이스에 백업 파일 복원하기

mysql -u root -p {데이터베이스 이름} < {백업 파일이 저장된 경로}

<example>
mysql -u root -p DatamotionMovieDatabase < /var/opt/DMMDB_20231012.sql

bash 로 접속한 후, # 뒤에서부터 명령을 작성하면 된다. -u root -p를 했으니 MySQL root 권한 접속을 위해 password 를 치라고 하고, 그 후 복원이 진행된다.


5. 복원이 잘 되었는 지 확인하기

복원 후 데이터베이스에 접속하여 테이블을 확인해보면 복원이 잘 되었음을 볼 수 있다.

USE {데이터베이스 이름};
SHOW TABLES;

휴우... 복원 성공!!
다음 번에는 MSSQL 에서 복원을 해보도록 하겠다. 이만!

0개의 댓글