전공영역 공부 기록

Docker로 MySQL 컨테이너 실행 및 Sakila 샘플 데이터 불러오는 방법

악분 2025. 3. 8. 12:59
반응형

https://youtube.com/shorts/ljerZDAqDJA

 

개요

이 글은 mysql 도커 컨테이너를 실행할때 sakila 데이터 샘플을 같이 불러오는 방법을 설명합니다.

 

설치 방법

 

mysql 도커 컨테이너는 제일 처음 실행될 때 /docker-entrypoint-initdb.d 디렉터리 경로에 있는 sql를 모두 실행합니다. 이 원리를 사용하여 sakila 데이터를 생성하는 sql파일을 /docker-entrypoint-initdb.d 경로에 마운트해주면 됩니다.

docker-compose.yml파일 예입니다. volumes로 initdb디렉터리를 mysql 컨테이너의 /docker-entrypoint-initdb.d디렉터리에 마운트했습니다.

services:
  mysql:
    container_name: mysql-sakiladb
    image: mysql:8.0
    volumes:
      - ./initdb:/docker-entrypoint-initdb.d
    environment:
      MYSQL_ROOT_PASSWORD: {root_password}
      TZ: UTC
    ports:
      - 3306:3306

 

initdb디렉터리에는 sakila 데이터를 생성하는 sql파일이 있어야 합니다. 그리고 sql파일 실행순서를 번호를 붙여 정해줍니다. 저는 curl을 사용하여 sql파일을 다운로드 받았습니다.

mkdir -p initdb

cd initdb &&
    curl -O 'https://downloads.mysql.com/docs/sakila-db.zip' && \
    unzip -j sakila-db.zip && rm sakila-db.zip &&
    mv sakila-schema.sql 01_sakila-schema.sql && \
    mv sakila-data.sql 02_sakila-data.sql

 

언제 사용할까?

저는 로컬에서 관계형 데이터베이스 테스트할 때 mysql과 sakila를 사용합니다. 3가지 이유때문에 mysql를 사용합니다.

  • 도커 컨테이너로 매우 쉽게 mysql 설치
  • mysql에서 제공하는 데이터 샘플을 제공
  • 데이터를 활용할 수 있는 검색자료(부하 테스트 등)가 많아 테스트 시간을 단축

 

sakila 데이터

sakila 데이터는 영화 대여점(DVD Rental Store)을 모델링했습니다.

 

DB 스키마 구조는 아래 링크에서 볼 수 있습니다.

 

주요 테이블 actor, film, rental 등이 있습니다. 저는 주요 테이블을 ChatGPT로 검색했습니다.

 

샘플 쿼리

ChatGPT와 같은 AI를 활용하면 매우 쉽게 샘플 쿼리를 얻을 수 있습니다. 질문할때 핵심은 쿼리 의도를 물어봐야 합니다.

 

ChatGPT에 얻은 쿼리를 그대로 실행하면 쿼리 실행결과가 잘 나옵니다.

 

참고자료

반응형