ddingurri
유원준의 개발로그
ddingurri
전체 방문자
오늘
어제
  • 전체글 (37)
    • PS (7)
      • BOJ (5)
      • Programmers (0)
      • 후기 (2)
    • CS (22)
      • Data Structure (0)
      • Java (6)
      • OOP (2)
      • Spring (7)
      • WEB (3)
      • Database (4)
    • Develop (2)
    • Books (2)
    • Daily (4)
      • moments (0)
      • 회고 (4)

블로그 메뉴

    공지사항

    인기 글

    태그

    • 스프링
    • 백준 주사위 굴리기2
    • mysql 소수점
    • 상어 초등학교
    • 책 스터디
    • 주사위 굴리기2 파이썬
    • Java
    • 삼성 문제집 파이썬
    • 객사오 2장
    • SWEA
    • 객체지향의 사실과 오해 1장
    • 주사위 굴리기2
    • 객체지향의 사실과 오해 2장
    • MySQL
    • 객체지향의 사실과 오해
    • 상어 중학교
    • 21609 파이썬
    • 주사위굴리기2
    • 객체지향의 사실과 오해 리뷰
    • 상어 중학교 python
    • 객체지향의 사실과 오해 후기
    • 주사위굴리기2 파이썬
    • 상어 중학교 python3
    • 23288 파이썬
    • float 소수점
    • 백준 주사위 굴리기2 파이썬
    • Spring
    • mysql float
    • 객체지향의 사실과 오해 요약
    • 백준

    최근 댓글

    최근 글

    티스토리

    hELLO · Designed By 정상우.
    ddingurri

    유원준의 개발로그

    Docker를 이용한 mysql + spring boot 연동
    Develop

    Docker를 이용한 mysql + spring boot 연동

    2023. 12. 23. 15:52

    동아리 스프링 세션을 운영하면서 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
      'Develop' 카테고리의 다른 글
      • [Windows] 도커 설치 시, Docker Desktop requires a newer WSL kernel version 오류 해결법
      ddingurri
      ddingurri

      티스토리툴바