들어가며

이후의 나에게 혹은 같은 상황을 겪는 다른 사람에게 도움이 되고자 MySQL 서비스 컨테이너에 DB 데이터 백업 파일을 Import 후 데이터베이스에 적용한 과정을 기록으로 남깁니다.

Import 하려는 파일 정보 및 위치

현재 배포 서버의 루트 디렉토리 내 3_backend_ron_cafe_curation_db_data 디렉토리에 백업해 둔 DB 데이터가 기록된 .sql 파일이 있습니다. 

pwd 명령 실행 시 현재 디렉토리의 위치를 보여줍니다.

ls 명령 실행 시 현재 디렉토리 내부에 존재하는 모든 파일 목록을 보여줍니다.

호스트에서 MySQL 서비스 컨테이너로 파일 Import

3_backend_ron_cafe_curation_db_data 디렉토리의 하위 파일들을 MySQL 서비스 컨테이너의 init-db 디렉토리로 옮기고자 합니다.

1. MySQL 서비스 컨테이너 ID 값 확인

docker ps

docker ps 명령을 실행하면 현재 실행 중인 컨테이너들의 정보를 확인할 수 있습니다.

MySQL 서비스 컨테이너 ID 는 eb8c7a2509c7 임을 알 수 있습니다.

 

2. MySQL 서비스 컨테이너에 디렉토리 복사

docker cp 3_backend_ron_cafe_curation eb8c7a2509c7:/init-db

3. MySQL 서비스 컨테이너 접속 후 디렉토리가 잘 복사되었는지 확인 

다음 명령을 실행해서 MySQL 서비스 컨테이너를 접속합니다.

docker exec -it eb8c7a2509c7 bash

ls 명령을 실행해 MySQL 서비스 컨테이너 내 루트 디렉토리에 존재하는 파일 및 디렉토리 목록을 확인할 수 있습니다.

확인 결과 init-db 디렉토리가 존재함을 알 수 있습니다.

4. init-db 디렉토리로 이동 후 production 데이터베이스에 .sql 파일 적용

cd init-db # init-db 디렉토리로 이동

mysql -u root -p 데이터베이스명 < ./[파일 이름].sql # SQL 스크립트 실행

5. mysql -u root -p 명령을 실행해 데이터베이스에 접속한 후 테이블 및 데이터가 잘 적용되었는지 확인

마치며

이번 기회를 통해 호스트 환경에서 도커 컨테이너 환경으로 파일을 복사하는 방법과 .sql 파일을 현재 실행 중인 MySQL 데이터베이스에 적용하는 방법을 알 수 있었습니다. 

 

출처

https://devbirdfeet.tistory.com/155

복사했습니다!