[Database] docker-compose 로 MySQL 설치하기

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 계정을 관리할 수 있다.

반응형

댓글

Designed by JB FACTORY