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파일을 다운로드 받았습니다.
- sakila sql파일 다운로드 경로: https://dev.mysql.com/doc/index-other.html
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)을 모델링했습니다.
- sakila 데이터 소개글: https://dev.mysql.com/doc/sakila/en/sakila-introduction.html
DB 스키마 구조는 아래 링크에서 볼 수 있습니다.
주요 테이블 actor, film, rental 등이 있습니다. 저는 주요 테이블을 ChatGPT로 검색했습니다.
샘플 쿼리
ChatGPT와 같은 AI를 활용하면 매우 쉽게 샘플 쿼리를 얻을 수 있습니다. 질문할때 핵심은 쿼리 의도를 물어봐야 합니다.
ChatGPT에 얻은 쿼리를 그대로 실행하면 쿼리 실행결과가 잘 나옵니다.
참고자료
- mysql sakila 공식문서: https://dev.mysql.com/doc/sakila/en/
'전공영역 공부 기록' 카테고리의 다른 글
맥북(ARM)에서 influxDBv1 helm 차트 실행방법 (0) | 2025.03.11 |
---|---|
helmfile - 여러 helm 차트를 한번에 관리하는 도구 (0) | 2025.03.09 |
mTLS 프로토콜과 패킷 분석 (1) | 2025.03.01 |
curl에서 hosts 파일 변경 없이 테스트하는 방법 (0) | 2025.02.16 |
TCP라더니 HTTPS?! 예상치 못한 디버깅 여정(feat, openssl TLS인증서 추출방법) (0) | 2025.02.16 |