3.5 KiB
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이 함께 설치됩니다.
- URL: http://localhost:8080
- 사용자: root 또는 dbuser
- 비밀번호: 위의 연결 정보 참조
환경 변수 설정
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 포트를 사용 중인 경우:
- 기존 서비스 중지
- docker-compose-mariadb.yml에서 포트 변경 (예: "3307:3306")
권한 문제
Linux/Mac에서 스크립트 실행 권한 부여:
chmod +x start-mariadb.sh stop-mariadb.sh
컨테이너가 시작되지 않는 경우
docker logs mariadb-server
명령어로 로그를 확인하여 오류 원인을 파악하세요.