티스토리 뷰

🐳 Docker

myslq 설치

James Wetzel 2025. 2. 1. 15:27
728x90
반응형
docker run -d \
  --name mysql-container \
  -e MYSQL_ROOT_PASSWORD=my-secret-pw \
  -e MYSQL_DATABASE=my-database \
  -e MYSQL_USER=user \
  -e MYSQL_PASSWORD=password \
  -p 3306:3306 \
  -v mysql-data:/var/lib/mysql \
  mysql:8.0


### 명령어 설명:
1. **`-d`**: 컨테이너를 백그라운드에서 실행 (데몬 모드)
2. **`--name`**: 컨테이너 이름 지정 (`mysql-container`)
3. **환경 변수**:
   - `MYSQL_ROOT_PASSWORD`: 루트 비밀번호 (필수)
   - `MYSQL_DATABASE`: 생성할 데이터베이스 이름
   - `MYSQL_USER/MYSQL_PASSWORD`: 추가 사용자 생성
4. **`-p 3306:3306`**: 호스트 3306 포트와 컨테이너 포트 연결
5. **`-v mysql-data:/var/lib/mysql`**: 영구 데이터 저장을 위한 볼륨 마운트
6. **`mysql:8.0`**: 사용할 MySQL 이미지 버전 (공식 Docker Hub 이미지)

### 추가 팁:
1. **보안 강화**:

-e MYSQL_ROOT_HOST='%' # 원격 접근 허용 (주의: 개발 환경에서만 사용)


2. **커스텀 설정 파일** 사용:

-v /path/to/my.cnf:/etc/mysql/my.cnf


3. **Docker Compose** 사용 시 (권장):

// yaml
   version: '3'
   services:
     mysql:
       image: mysql:8.0
       volumes:
         - mysql-data:/var/lib/mysql
       environment:
         MYSQL_ROOT_PASSWORD: my-secret-pw
         MYSQL_DATABASE: my-database
         MYSQL_USER: user
         MYSQL_PASSWORD: password
       ports:
         - "3306:3306"
   volumes:
     mysql-data:


### 주의사항:
- 실제 배포 시 `my-secret-pw` 같은 기본 비밀번호 사용 금지
- MySQL 8.0은 기본 인증 방식이 `caching_sha2_password`로 변경됨
- 프로덕션 환경에서는 반드시 특정 버전 태그 사용 (예: `mysql:8.0.34`)
- 데이터 백업을 위해 주기적으로 볼륨 스냅샷 생성 권장

컨테이너 실행 후 접속 확인:

docker exec -it mysql-container mysql -u root -p

 

728x90
반응형