동아리 스프링 세션을 운영하면서 docker로 mysql 설치 및 spring boot 연결 방법을 여쭤보시는 분들이 많아서,
이번 포스팅에서는 도커를 이용하여 mysql 서버를 로컬에서 띄우고, Spring boot와 연동하는 과정을 소개합니다!
물론 Mysql을 직접 설치하는 방법도 있지만, 도커를 이용하여 관리하는 것이 설치(세팅)부터 형상관리까지 아주 편리하기 때문에 docker를 이용해 관리하는 것을 권장합니다.
현재 OS는 윈도우 11이며, docker 설치가 완료되었다는 전제 하에 진행합니다!
맥 유저분들은 터미널 이용하시면 됩니다!
Spring boot의 경우 IntelliJ를 이용합니다.
Window PowerShell 실행, docker 설치 확인
먼저 docker를 실행해 주신 후에, powershell에 접속합니다.
도커가 정상적으로 설치되었다면 버전 정보가 나타납니다.
도커 MySQL 이미지 다운로드
docker pull mysql
docker pull 명령어를 통해 사용하고자 하는 이미지를 다운받습니다.
MySQL 이미지 다운로드 및 컨테이너 실행
docker run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=mysql --name=jpa mysql
docker run 명령어를 이용하여
docker run -p {사용할 포트} : 3306 -e MYSQL_ROOT_PASSWORD={사용할 비밀번호} --name={컨테이너명} mysql
위와 같은 형식으로 입력하시면 됩니다. 기존에 mysql을 로컬에서 써보신 경우 3306번을 사용하고 있을 가능성이 있기 때문에 3307, 33060 등 다른 포트를 이용하시면 됩니다.
저의 경우 컨테이너 이름은 jpa, 루트 계정 비밀번호는 mysql, 포트는 3306번을 이용하였습니다.
아래와 같이 mysql 컨테이너가 실행된 모습을 볼 수 있습니다.
MySQL 컨테이너가 실행 중인지 확인
docker ps
docker ps 명령어를 이용하여 컨테이너의 목록을 표시합니다.
STATUS에서 Up 으로 표시된 경우 정상적으로 실행 중임을 나타내며,
만약 Exited 상태인 경우 docker start {컨테이너명} 을 통해 컨테이너를 시작할 수 있습니다.
실행 중인 컨테이너에 접속
docker exec -it jpa bash
docker exec 명령어를 통해 실행 중인 컨테이너에 접속합니다.
이때 주의할 점은, 컨테이너에 접속한 것이지, MySQL에 접속한 것이 아닙니다!!
이 상태에서 아래 명령어를 통해 mysql에 root 계정으로 접속합니다.
컨테이너 생성 시 설정한 비밀번호(mysql)을 입력하여 성공적으로 접속한 화면은 아래와 같습니다.
mysql -u root -p
사용할 database 만들기
mysql에 접속한 상태에서 임의의 database를 만듭니다.(예시의 경우 jpa)
use 명령어를 통해 만든 database에 접속되는지 확인합니다.
create database jpa;
use jpa;
이제 mysql 설정은 끝났고, spring boot로 넘어가면 됩니다.
Spring boot 의존성 추가
Spring boot 프로젝트 폴더 내에 dependencies 내부에 아래와 같은 의존성을 추가합니다.
implementation 'mysql:mysql-connector-java'
runtimeOnly 'com.mysql:mysql-connector-j'
application.yml 파일 설정
spring:
datasource:
url: jdbc:mysql://localhost:3306/jpa?serverTimezone=UTC
driver-class-name: com.mysql.cj.jdbc.Driver
username: root
password: mysql
설정한 mysql 정보를 입력합니다.
Spring boot 실행해보기
이제 Spring을 실행하면 아래와 같이 실행되고, MySQL 접속에 성공했습니다.
만약 아래와 같이 build error가 뜬다면??
IntelliJ 왼쪽 상단 Files -> Settings -> Build Tools -> Gradle에 접속
Build and run using, Run tests using을 모두 IntelliJ IDEA로 변경합니다.
또한 아래 Gradle JVM의 자바 버전이 올바른지 확인합니다.
DB IntelliJ에서 관리하기
IntelliJ 우측 상단에 보면, 드럼통 모양의 Database 버튼을 찾아 클릭합니다!
이후 왼쪽에 + 버튼을 눌러 database를 추가할 수 있습니다.
data source > mysql을 찾아 클릭합니다.
연결할 DB 정보 입력
위에서부터
- DB명 입력
- Host는 localhost, Port는 설정한 포트로 입력(게시글의 경우 3306)
- User는 root, Password 입력 ( 게시글의 경우 mysql)
- Database명 입력(jpa)
이후 아래의 Test Connection 버튼을 눌러 접속을 시도합니다.
Succeeded 메세지가 뜨면 OK 버튼을 눌러 적용하면 완료!
위와 같이 생성한 테이블 정보가 보입니다!
'Develop' 카테고리의 다른 글
[Windows] 도커 설치 시, Docker Desktop requires a newer WSL kernel version 오류 해결법 (0) | 2023.04.18 |
---|