database/README-MariaDB.md

146 lines
3.5 KiB
Markdown
Raw Permalink Normal View History

# 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 시작
```bash
# 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 중지
```bash
# 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` 파일을 수정하여 데이터베이스 설정을 변경할 수 있습니다:
```env
MYSQL_ROOT_PASSWORD=rootpassword123
MYSQL_DATABASE=testdb
MYSQL_USER=dbuser
MYSQL_PASSWORD=userpassword123
```
## 초기화 스크립트
`mariadb-init/` 디렉토리에 있는 SQL 파일들은 컨테이너 첫 실행 시 자동으로 실행됩니다.
- 데이터베이스 생성
- 사용자 권한 설정
- 샘플 테이블 및 데이터 생성
## 설정 파일
`mariadb-config/my.cnf` 파일에서 MariaDB 서버 설정을 커스터마이징할 수 있습니다:
- 문자셋: UTF8MB4
- 성능 최적화 설정
- 로그 설정
- 보안 설정
## 유용한 명령어
### 컨테이너 상태 확인
```bash
docker ps | grep mariadb
```
### MariaDB 로그 확인
```bash
docker logs mariadb-server
```
### MariaDB 컨테이너 접속
```bash
docker exec -it mariadb-server mysql -u root -p
```
### 데이터 백업
```bash
docker exec mariadb-server mysqldump -u root -p --all-databases > backup.sql
```
### 데이터 복원
```bash
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에서 스크립트 실행 권한 부여:
```bash
chmod +x start-mariadb.sh stop-mariadb.sh
```
### 컨테이너가 시작되지 않는 경우
```bash
docker logs mariadb-server
```
명령어로 로그를 확인하여 오류 원인을 파악하세요.