database/README-MariaDB.md

3.5 KiB

MariaDB Docker 설정 가이드

이 프로젝트는 Docker를 사용하여 MariaDB 서버를 쉽게 설정하고 관리할 수 있도록 구성되었습니다.

파일 구조

workspace_db/
├── docker-compose-mariadb.yml  # MariaDB Docker Compose 설정
├── mariadb.env                 # 환경 변수 설정
├── start-mariadb.sh           # MariaDB 시작 스크립트
├── stop-mariadb.sh            # MariaDB 중지 스크립트
├── mariadb-init/              # 초기화 스크립트 디렉토리
│   └── 01-init-database.sql   # 데이터베이스 초기화 SQL
├── mariadb-config/            # MariaDB 설정 파일 디렉토리
│   └── my.cnf                 # MariaDB 설정 파일
└── README-MariaDB.md          # 이 파일

빠른 시작

1. MariaDB 시작

# Linux/Mac
chmod +x start-mariadb.sh
./start-mariadb.sh

# Windows (PowerShell)
docker-compose -f docker-compose-mariadb.yml --env-file mariadb.env up -d

2. MariaDB 중지

# Linux/Mac
chmod +x stop-mariadb.sh
./stop-mariadb.sh

# Windows (PowerShell)
docker-compose -f docker-compose-mariadb.yml down

연결 정보

  • 호스트: localhost
  • 포트: 3306
  • 데이터베이스: testdb
  • 사용자: dbuser
  • 비밀번호: userpassword123
  • Root 비밀번호: rootpassword123

phpMyAdmin 접속

MariaDB 관리를 위한 phpMyAdmin이 함께 설치됩니다.

환경 변수 설정

mariadb.env 파일을 수정하여 데이터베이스 설정을 변경할 수 있습니다:

MYSQL_ROOT_PASSWORD=rootpassword123
MYSQL_DATABASE=testdb
MYSQL_USER=dbuser
MYSQL_PASSWORD=userpassword123

초기화 스크립트

mariadb-init/ 디렉토리에 있는 SQL 파일들은 컨테이너 첫 실행 시 자동으로 실행됩니다.

  • 데이터베이스 생성
  • 사용자 권한 설정
  • 샘플 테이블 및 데이터 생성

설정 파일

mariadb-config/my.cnf 파일에서 MariaDB 서버 설정을 커스터마이징할 수 있습니다:

  • 문자셋: UTF8MB4
  • 성능 최적화 설정
  • 로그 설정
  • 보안 설정

유용한 명령어

컨테이너 상태 확인

docker ps | grep mariadb

MariaDB 로그 확인

docker logs mariadb-server

MariaDB 컨테이너 접속

docker exec -it mariadb-server mysql -u root -p

데이터 백업

docker exec mariadb-server mysqldump -u root -p --all-databases > backup.sql

데이터 복원

docker exec -i mariadb-server mysql -u root -p < backup.sql

포트 설정

현재 설정된 포트:

  • MariaDB: 3306
  • phpMyAdmin: 8080

다른 서비스와 포트 충돌이 있는 경우 docker-compose-mariadb.yml 파일에서 포트를 변경할 수 있습니다.

데이터 지속성

MariaDB 데이터는 Docker 볼륨(mariadb_data)에 저장되어 컨테이너를 재시작해도 데이터가 보존됩니다.

문제 해결

포트 충돌

다른 MySQL/MariaDB 서비스가 3306 포트를 사용 중인 경우:

  1. 기존 서비스 중지
  2. docker-compose-mariadb.yml에서 포트 변경 (예: "3307:3306")

권한 문제

Linux/Mac에서 스크립트 실행 권한 부여:

chmod +x start-mariadb.sh stop-mariadb.sh

컨테이너가 시작되지 않는 경우

docker logs mariadb-server

명령어로 로그를 확인하여 오류 원인을 파악하세요.