ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Docker] Docker로 MySQL 설치(docker-compose.yml)
    Docker 2022. 9. 11. 14:53
    반응형

    1. MySQL 컨테이너 이미지 가져오기

    docker pull mysql:8.0

     

    2. docker-compose 파일 생성

    # compose 파일 버전
    version: '3'
    services:
        # 서비스 명
        mysql:
            # 사용할 이미지
            image: mysql:8.0
            # 컨테이너 실행 시 재시작
            restart: always
            # 컨테이너명 설정
            container_name: mysql
            # 접근 포트 설정 (컨테이너 외부:컨테이너 내부)    
            ports:
              - "3306:3306"
            # 환경 변수 설정
            environment:
                MYSQL_ROOT_PASSWORD: passowrd
                TZ: Asia/Seoul
            # 명렬어 설정
            command:
                - --character-set-server=utf8mb4
                - --collation-server=utf8mb4_unicode_ci
            # 볼륨 설정
            volumes:
                - ./data/mysql/:/var/lib/mysql

     

    3. docker-compose 파일 실행

    3_1. docker-compose 파일이 저장된 위치로 이동

    cd 파일이 저장된 위치

    3_2. docker-compose 실행

    docker-compose up -d

    3_3. docker-compose 중지

    docker-compose stop

     

    4. MySQL 컨테이너, 이미지 관련 명령어

    4_1. 컨테이너 시작

    docker start mysql

    4_2. 컨테이너 중지

    docker stop mysql

    4_3. 컨테이너 재시작

    docker restart mysql

    4_4. 컨테이너 삭제

    docker rm mysql

    4_5. 이미지 삭제

    docker rmi mysql:8.0

     

    5. MySQL Database 생성, 계정 생성 및 권한 설정하기

    5_1. MySQL 컨테이너 BASH 접속

    docker exec -it mysql /bin/bash

     

    5_2. MySQL에 root 계정으로 접속

    비밀번호는 docker-compose.yml 에서 정의한 MYSQL_ROOT_PASSWORD를 입력하세요.

    mysql -u root -p

     

    5_3. Database 확인 및 생성

    다음 명령어로 데이터베이스를 확인하고, 새로운 데이터베이스를 생성하세요.

    # Database 생성
    # create database [database명];
    create database test;

     

    5_4. 계정 생성 및 권한 설정

    다음 명령어로 계정을 생성하고, 권한을 부여하세요. 

    # 계정 생성
    # create user ['user명']@['server명'] identified by ['패스워드'];
    create user 'testuser'@'%' identified by 'password';
    
    # 권한 확인
    # show grants for ['user명']@['server명'];
    show grants for 'testuser'@'%';
    
    # 권한 설정
    # grant all privileges on [database명].[table명] to ['user명']@['server명'];
    grant all privileges on test.* to 'testuser'@'%';
    
    # 캐시를 지우고 새로운 설정을 적용
    flush privileges;
    
    # 계정 삭제
    # drop user ['user명']@['server명'];
    drop user 'testuser'@'%';

     

    Docker 기본 명령어 - https://tychejin.tistory.com/359

    반응형

    댓글

Designed by Tistory.