[CI/CD] Docker에 MySQL 설치

RUNGOAT·2023년 8월 22일
0

CI/CD

목록 보기
2/11
post-custom-banner

1️⃣   Docker에 MySQL 설치 및 실행

1.1. 8.0.29 버전 설치

docker pull mysql:8.0.29

1.2. 3306 포트로 실행, Volumn 지정

docker run -v data:/db/mysql -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=<비밀번호> -e TZ=Asia/Seoul --name <도커 컨테이너 이름> mysql:8.0.29 --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
  • -v data:/db/mysql : /var/lib/docker/volumes/ 경로 안에 data 디렉토리가 생긴다.

  • 접근할려면

    1. sudo ls /var/lib/docker
    2. sudo su

2️⃣   MySQL 접속 및 계정 생성

2.1. bash 접속

docker exec -it <컨테이너 이름> /bin/bash
mysql -u root -p
# password는 위에서 생성한 비밀번호(MYSQL_ROOT_PASSWORD)

2.2. 사용할 데이터베이스 생성

mysql> create database [데이터베이스 이름];

2.3. 데이터베이스 목록 확인

mysql> show databases;

2.4. 사용할 데이터베이스 지정

mysql> use [데이터베이스 이름];

2.5. 계정 생성

CREATE USER '유저 이름'@'%' IDENTIFIED BY '비밀번호';

2.6. 권한 부여

# 특정 DB에 모든 권한 부여
GRANT ALL PRIVILEGES ON [데이터베이스 이름].* TO '유저 이름'@'%';

위 명령어로 권한을 줄려고 하면 아래와 같은 에러가 발생한다.
1410 (42000): You are not allowed to create a user with GRANT


👉 해결 방법은 루트 유저에게 권한을 주면 된다.

  • 루트 유저로 mysql 접속하여 권한 부여
mysql> grant all privileges ON *.* TO 'root'@'%' with grant option;
mysql> grant all privileges on [데이터베이스 이름].* to '[유저 이름]'@'%' with grant option;
  • 특정 유저에게 권한을 주었으면, 바로 루트 유저에게 주었던 권한은 없앤다.
mysql> revoke all on *.* from root@'%';
mysql> flush privileges;

2.7. 확인

위 명령어를 마친 후

  • mysql -u '[유저 이름]' -p를 입력
  • use [데이터베이스 이름];

을 통해 생성한 계정으로 데이터베이스에 접근 되는지 확인하면 된다.


📌 참고

profile
📞피드백 너무나 환영
post-custom-banner

0개의 댓글