# 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 ``` 명령어로 로그를 확인하여 오류 원인을 파악하세요.