[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