들어가며
이후의 나에게 혹은 같은 상황을 겪는 다른 사람에게 도움이 되고자 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 데이터베이스에 적용하는 방법을 알 수 있었습니다.
출처
'포트폴리오 > JJINCAFE IN SEOUL' 카테고리의 다른 글
[리팩토링] 폴더 구조의 변경 (0) | 2022.11.15 |
---|---|
[리팩토링] 회원가입 API 트랜잭션 처리 및 관심사 분리 (0) | 2022.11.15 |
서버 실행할 때 왜 .env.production 파일이 파싱되지 않지? (0) | 2022.11.14 |