본문으로 건너뛰기

MySQL Master (Docker Compose)

VM(172.100.100.11)에서 Docker Compose로 실행되는 MySQL Master (쓰기 전용)

목차


디렉토리 구조

mysql-master/
├── docker-compose.yml
├── .env.example # 환경변수 템플릿
├── config/
│ └── my.cnf # MySQL 설정 (GTID 복제)
└── initdb.d/
└── init.sql # 초기화 스크립트

스토리지 구조

볼륨컨테이너 경로설명
./data/var/lib/mysql데이터 저장 (로컬)
./config/my.cnf/etc/mysql/conf.d/my.cnfMySQL 설정
./initdb.d/docker-entrypoint-initdb.d초기화 SQL
./logs/var/log/mysql로그

빠른 설정

# 1. 환경변수 파일 복사 및 수정
cp .env.example .env
vim .env

# 2. 데이터 디렉토리 생성 및 권한 설정
mkdir -p data logs
sudo chown -R 999:999 data logs

# 3. 컨테이너 실행
docker compose up -d

복제 계정 생성 (K8s Slave용)

docker exec -it mysql-master mysql -uroot -p
CREATE USER 'repl_pista'@'%' IDENTIFIED WITH mysql_native_password BY '<REPL_PASSWORD>';
GRANT REPLICATION SLAVE ON *.* TO 'repl_pista'@'%';
FLUSH PRIVILEGES;

상태 확인

# MySQL 접속
docker exec -it mysql-master mysql -uroot -p

# GTID 상태 확인
docker exec -it mysql-master mysql -uroot -p -e "SHOW MASTER STATUS\G"

관련 문서

그래프 뷰

그래프 데이터 로딩 중…
현재: MySQL Master (Docker Compose)
노드 클릭 → 이동 · 드래그 → 위치 조정