Docker로 MySQL 설치하기
1. 시작하며
로컬환경에서 docker-compose.xml 을 작성하여 MySQL 8 을 설치하고 user 계정을 생성해보자. docker 에서 image pull 을 하여 설치할 수도 있지만 docker-compose 를 쓰면 훨씬 편하게 설치할 수 있다.
참고로 docker로 mariaDB 설치 방법 은 링크를 확인하면 된다.
2. docker-compose.yml 작성
version: '3'
services:
mysql:
image: mysql:8.0
container_name: mysql
ports:
- 3306:3306 # HOST:CONTAINER
environment:
MYSQL_ROOT_PASSWORD: admin
command:
- --character-set-server=utf8mb4
- --collation-server=utf8mb4_unicode_ci
volumes:
- D:/mysql/data:/var/lib/mysql
3. docker 실행 및 container 접속
컨테이너를 생성 / 실행
# 컨테이너 생성 및 실행
docker-compose -f docker-compose.yml up -d
# 실행 중인 컨테이너만 조회
docker ps
# 전체 조회
docker ps -a
Docker 컨테이너 접속
docker exec -it mysql /bin/bash
4. DB 사용자 추가하기
개발용 유저를 데이터베이스에 추가한다.
DB 접속
mysql -u root -p
사용자 추가
// localhost 에서만 접속 가능한 계정 생성
mysql> USE mysql;
mysql> CREATE USER 'YOUR_SYSTEM_USER'@'localhost' IDENTIFIED BY 'YOUR_PASSWD';
mysql> GRANT ALL PRIVILEGES ON *.* TO 'YOUR_SYSTEM_USER'@'localhost';
mysql> FLUSH PRIVILEGES;
// 모든 DB, 테이블에 접속 가능한 계정 생성
mysql> USE mysql;
mysql> CREATE USER 'YOUR_SYSTEM_USER'@'%' IDENTIFIED BY 'YOUR_PASSWD';
mysql> GRANT ALL PRIVILEGES ON *.* TO 'YOUR_SYSTEM_USER'@'%';
mysql> FLUSH PRIVILEGES;
mysql> USE mysql;
mysql> CREATE USER 'sa'@'%' IDENTIFIED BY 'password';
mysql> GRANT ALL PRIVILEGES ON *.* TO 'sa'@'%';
mysql> FLUSH PRIVILEGES;
- 사용자: sa
- 패스워드: password
5. 마치며
docker-compose.xml 을 작성하여 MySQL 을 설치하고 user 계정을 관리할 수 있다.
반응형