본문 바로가기
Setting

[Docker] Docker에서 MySQL 버전 변경 및 dump 파일 교체 방법

by clolee 2025. 5. 4.

✅ [실무 가이드] Docker MySQL 버전 변경 및 dump 파일 갱신 방법


📌 개요

도커 환경에서 MySQL을 사용 중이라면, 아래 두 작업은 매우 자주 발생합니다:

  1. MySQL 버전 업그레이드 or 다운그레이드
  2. 초기 데이터(dump.sql)를 변경하여 재적용

도커 환경에서는 .env와 docker-compose.yml을 기반으로 아주 쉽게 처리할 수 있습니다.


🛠 1. MySQL 버전 변경 방법

✅ Step 1: .env 파일에서 MYSQL_VERSION 수정

# .env 파일
MYSQL_VERSION=8.4       # 원하는 버전으로 수정 (예: 5.7, 8.0.34 등)

🔗 Docker Hub - MySQL Tags 참고하여 사용 가능한 버전 확인


✅ Step 2: 컨테이너 재생성

docker-compose down         # 기존 컨테이너 종료
docker-compose pull         # 새로운 버전의 이미지 다운로드
docker-compose up -d        # 새 버전으로 컨테이너 실행

기존 volume은 유지되므로 데이터는 그대로 남습니다.


🧹 2. dump 파일(dump.sql) 변경하여 재적용하기

기본적으로 dump는 docker-entrypoint-initdb.d 폴더에 .sql 파일로 넣으면, 컨테이너 최초 생성 시에만 실행됩니다.
이미 컨테이너가 한 번 실행된 경우, dump 파일을 바꿔도 다시 실행되지 않습니다.


✅ Step 1: init/dump.sql 덮어쓰기

init/ 폴더에 새 SQL 파일을 덮어씁니다:

~/docker-mysql-dev/
├── init/
│   └── dump.sql   ← ✅ 새로 바꾼 dump 파일로 교체

✅ Step 2: volume 제거 후 컨테이너 재생성

docker-compose down -v     # volume까지 삭제 (DB 데이터도 초기화됨)
docker-compose up -d       # dump.sql이 자동 실행됨

🛑 -v를 붙이지 않으면 dump.sql이 무시됩니다!
도커는 DB가 비어있을 때만 dump를 적용합니다.


🔍 확인 방법

docker exec -it local-mysql mysql -u root -p
# 비밀번호 입력 후
SHOW DATABASES;

또는 DataGrip에서 DB 확인


✅ 요약

작업 설명
MySQL 버전 변경 .env 수정 후 down → pull → up
dump 파일 재적용 파일 교체 후 docker-compose down -v → up -d
기존 데이터 유지 -v 없이 down 하면 volume은 유지됨
기존 데이터 초기화 후 재적용 반드시 -v 옵션 사용해야 함

댓글