티스토리 뷰

반응형

통합 테스트를 하려고 했는데, MYSQL 의존성이 있어서 세팅이 필요한 경우가 있다.

가장 가볍게 구성하려면, Docker 를 이용하는게 가장 손쉬운것 같다. docker 를 이용해서 mysql 8 버전을 띄우고, 외부접근 가능한 계정까지 만들어 보자.

 

1. docker 를 통해 mysql 기동하기

docker 가 설치되어있다면 아주 간단한 명령어로 기동이 가능하다.

 

docker pull mysql:8.0.22
docker run --name mysql-container -e MYSQL_ROOT_PASSWORD=암호 -d -p 3306:3306 mysql:8.0.22

만약, 프로세스가 종료되도 db의 데이터가 유지되어야 한다면 볼륨마운트를 해야한다. (안그러면 컨테이너 종료하면 사라짐)

실행할 때 -v 로컬경로:/var/lib/mysql  옵션을 추가해서 실행하면 되므로 참고해두자. (볼륨마운트가 뭔지 모른다면 도커부터 공부하자)

 

2. DB생성 + 계정추가 

아직은 root 계정만 존재하기 때문에, 컨테이너 안에서 외부에 연결가능한 계정을 만들어야한다.

컨테이너 안에서 명령어를 입력하려면 다음과 같이 실행하면 된다.

docker exec -it mysql-container bash

 

위 명령을 실행하면, 다음과 같이 새로운 프롬포트가 뜨는데, 이게 도커 컨테이너 안에서 명령을 실행할 수 있는 상태이다.

여기서 mysql 에 접속해서 db 와 계정을 추가해보자.

$ docker exec -it mysql-container bash

# --------------------------------
# --- 여기부터는 컨테이너 안의 환경임 ----
# ---------------------------------

# (1) mysql root 계정으로 접속
root@21808d4eb6c3:/# mysql -u root -p
Enter password: <--- 도커 실행시 MYSQL_ROOT_PASSWORD 에 정의한 비빌번호

# (2) mysql 창
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 56
Server version: 8.0.22 MySQL Community Server - GPL

Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>

이제 mysql 프롬포트 창에서 사용할 db 와 외부에서 접근가능한 계정을 추가해보자. 

mysql 구버전의 경우 system 용 table 에 직접 데이터를 입력하는 방식으로 가이드 되었는데, mysql 8.x 버전대부터는 아래와 같이 명령어를 통해 유저를 생성해야 정상적으로 동작하니 참고하자.

CREATE DATABASE 디비명;
CREATE USER 계정명@'%' IDENTIFIED BY '암호';
GRANT ALL PRIVILEGES ON 디비명.* TO '계정명'@'%';
FLUSH PRIVILEGES;

3. jdbc 연결하기

localhost에서 3306 포트로 사용한다고 할때, JDBC URL 의 경우 다음과 같이 사용해주자.

jdbc:mysql://127.0.0.1:3306/디비명?useSSL=false&allowPublicKeyRetrieval=true

위와 같이 사용하지 않으면, public key retrieval is not allowed 오류가 발생될 수 있는데, 이 문제를 피할 수 있다.

반응형
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함