-
Notifications
You must be signed in to change notification settings - Fork 4
Database 설정 가이드
Kim minho edited this page Jun 12, 2025
·
1 revision
본 프로젝트는 MySQL 8.0과 Redis를 사용하며, Docker Compose를 통해 쉽게 개발 환경을 구성할 수 있습니다.
💡 Tip: Docker Desktop을 설치하면 Docker Compose가 함께 설치됩니다.
프로젝트 루트 디렉토리에서 다음 명령어를 실행하세요:
# docker 폴더로 이동
cd docker
# DB 컨테이너 시작 (백그라운드 실행)
docker-compose up -d또는 루트 디렉토리에서 직접 실행:
# 루트 디렉토리에서 docker-compose.yml 파일 경로 지정
docker-compose -f docker/docker-compose.yml up -d# docker 폴더에서 실행
cd docker
docker-compose ps
# 또는 루트 디렉토리에서
docker-compose -f docker/docker-compose.yml ps
# 로그 확인 (선택사항)
docker-compose logs -f이제 Spring Boot 애플리케이션을 실행하면 자동으로 DB에 연결됩니다.
| 항목 | 값 |
|---|---|
| 호스트 | localhost |
| 포트 | 3306 |
| 데이터베이스 | amatuers |
| 사용자 | admin |
| 비밀번호 | 1234 |
| Root 비밀번호 | 1234 |
| 항목 | 값 |
|---|---|
| 호스트 | localhost |
| 포트 | 6379 |
application.yml 설정 예시:
spring:
datasource:
url: jdbc:mysql://localhost:3306/amatuers
username: admin
password: 1234
driver-class-name: com.mysql.cj.jdbc.Driver
jpa:
hibernate:
ddl-auto: update
show-sql: true
properties:
hibernate:
dialect: org.hibernate.dialect.MySQL8Dialect
format_sql: true
data:
redis:
host: localhost
port: 6379-
MySQL 데이터:
mysql_dataDocker Volume에 저장됩니다 - 컨테이너 재시작: 데이터가 보존됩니다
-
완전 삭제:
docker-compose down -v명령어로 볼륨까지 삭제 가능
⚠️ 주의:docker-compose down -v실행 시 모든 데이터가 삭제됩니다!
# docker 폴더에서 실행하는 경우
cd docker
# 컨테이너 시작
docker-compose up -d
# 컨테이너 중지
docker-compose stop
# 컨테이너 중지 및 삭제 (데이터 보존)
docker-compose down
# 컨테이너 및 볼륨 삭제 (데이터 완전 삭제)
docker-compose down -v루트 디렉토리에서 실행하는 경우:
# 컨테이너 시작
docker-compose -f docker/docker-compose.yml up -d
# 컨테이너 중지
docker-compose -f docker/docker-compose.yml stop
# 컨테이너 중지 및 삭제 (데이터 보존)
docker-compose -f docker/docker-compose.yml down
# 컨테이너 및 볼륨 삭제 (데이터 완전 삭제)
docker-compose -f docker/docker-compose.yml down -v# docker 폴더에서 실행
cd docker
# MySQL만 재시작
docker-compose restart mysql
# Redis만 재시작
docker-compose restart redis
# 특정 컨테이너 로그 확인
docker-compose logs mysql
docker-compose logs redis루트 디렉토리에서 실행:
# MySQL만 재시작
docker-compose -f docker/docker-compose.yml restart mysql
# Redis만 재시작
docker-compose -f docker/docker-compose.yml restart redis
# 특정 컨테이너 로그 확인
docker-compose -f docker/docker-compose.yml logs mysql방법 1: Docker 컨테이너를 통한 접속
docker exec -it mysql-container mysql -u admin -p amatuers방법 2: 로컬 MySQL 클라이언트 사용
mysql -h localhost -P 3306 -u admin -p amatuers방법 1: Docker 컨테이너를 통한 접속
docker exec -it redis-container redis-cli방법 2: 로컬 Redis 클라이언트 사용
redis-cli -h localhost -p 6379증상: bind: address already in use 에러 발생
해결방법:
# 포트 사용 프로세스 확인
lsof -i :3306 # MySQL
lsof -i :6379 # Redis
# 기존 프로세스 종료 후 다시 시도증상: 컨테이너가 계속 재시작되거나 실행되지 않음
해결방법:
# 1. 로그 확인
docker-compose logs mysql
docker-compose logs redis
# 2. 기존 컨테이너 완전 삭제 후 재시작
docker-compose down -v
docker-compose up -d증상: Access denied for user 또는 Unknown database 에러
해결방법:
# 1. MySQL 컨테이너 재생성
docker-compose down
docker volume rm $(docker volume ls -q | grep mysql)
docker-compose up -d
# 2. 연결 정보 재확인
docker exec -it mysql-container mysql -u root -p증상: Volume 마운트 권한 오류
해결방법:
# Docker 볼륨 권한 재설정
docker-compose down
docker system prune -a --volumes
docker-compose up -d개발 중 DB를 완전히 초기화하고 싶을 때:
# 모든 데이터 삭제 후 재시작
docker-compose down -v
docker-compose up -d