Docker안의 MySQL 데이터 Dump export/import

Gary's Note·2022년 9월 14일
0
post-thumbnail

1. ToDo

- Docker에 설치된 MySQL안의 데이터를 export하고 import하기.


2. How To Do??

  • Docker Comporse(MySQL)

# 버전 지정
version: "3.7"

# 컨테이너 설정
services: 
  database:   
    # Docker Container Name
    container_name: <container_name>
    # Image to use
    image: mysql:<version>
    # 컨테이너 다운 시 재시작하라는 명령어
    restart: always 
    # 데이터베이스 컨테이너 안의 환경변수 설정
    environment:
      # 기본적으로 생성할 DB
      - MYSQL_DATABASE=<Database Name>
      # 데이터베이스에 연결할 계정 
      - MYSQL_USER=<Username>
      # 데이터베이스에 연결할 계정의 비밀번호
      - MYSQL_PASSWORD=<Password>
      # 기본 Root 계정의 비밀번호
      - MYSQL_ROOT_PASSWORD=<Root Password>
      # 데이터베이스 타임존
      - TZ=<Timezone Index>
    # Port 지정
    ports: 
      - "3306:3306"
  • Data Export

    • Terminal Command
  # Docker MySQL의 sh 접속
  docker exec -it [Container-ID] sh
  
  # MySQL 데이터 Dump
  mysqldump -uroot -p [Database-Name] > /tmp/[File-Name].sql
  
  # 해당 경로에 생성 확인
  ls -al /tmp
  
  # Docker Container 밖으로 파일 복사
  docker cp [Container-ID]:/tmp/[File-Name].sql [PC의 저장할 경로]
  • Data Import

    • Terminal Command
  # PC의 SQL File을 Docker 안으로 복사
  docker cp [PC의 SQL 파일 경로] [Container-ID]:/tmp
  
  # Docker MySQL의 sh 접속
  docker exec -it [Container-ID] sh
  
  # MySQL 데이터 Import
  mysql -uroot -p [Database-Name] < /tmp/[File-Name].sql
  
  # 만약에 Import 도중 에러가 나는 경우 강제로 계속 진행하게 할 때
  mysql -uroot -p -f [Database-Name] < /tmp/[File-Name].sql
profile
_reap what you sow_

0개의 댓글