본문 바로가기

Cloud/Docker

[Docker] Docker와 MariaDB 연동

728x90
반응형

MariaDB연동(docker)

앞에서 만든 spring boot 프로젝트와 JPA 연동

Database는 Mariadb 사용하며, docker에 띄워서 사용

Docker에 MariaDB 설치 및 실행

docker 이미지 다운로드

docker pull mariadb

error 발생

img

-> docker hub 로그인 문제

docker hub 로그인

docker login

img

 

 

docker mariadb image 다운로드

docker pull mariadb

img

 

 

docker mariadb 컨테이너 추가 및 구동

docker run --name maraidb_noticeboard -d -p 4001:3306 -e MYSQL_ROOT_PASSWORD=yunha98 mariadb

-name : 컨테이너 이름 지정

-d : 컨테이너를 백그라운드로 실행

-p 4001:3306 : 호스트-컨테이너간 포트 연결. 호스트에서 4001로 접속 시 컨테이너 3306 포트로 포트포워딩

-e MYSQL~ : 컨테이너 내 환경변수 설정. root 계정 패스워드 설정

img

 

 

컨테이너 목록 확인

docker ps

img

 

 

컨테이너 bash로 접속

docker exec -it maraidb_noticeboard /bin/bash

img

 

MariaDB 설정(user 및 데이터베이스 생성)

mariadb 실행

mysql -uroot -p'password'

img

 

 

user 생성 및 권한 부여

create user 'yunha'@'%' identified by 'yunha98';
grant all privileges on .*. to 'yunha'@'%';
flush privileges;

img

 

 

noticeboard 데이터베이스 생성

create database noticeboard;

img

 

Spring Boot Project와 MariaDB 연동

application.yml

  • /src/main/resources/application.properties 파일을 application.yml로 바꾼다
spring:
 datasource:
   url: jdbc:mariadb://localhost:4000/noticeboard
   username: yunha
   password: yunha98
   driver-class-name: org.mariadb.jdbc.Driver

img

 

build.gradle

  • mariadb jdbc 의존성 추가
    img
  • implementation group: 'org.mariadb.jdbc', name:'mariadb-java-client'

 

 

JPA 사용

application.yml

jpa:
  hibernate:
    ddl-auto: update
    naming:
      physical-strategy: org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl
    show-sql: true
    database-platform: org.hibernate.dialect.MariaDBDialect

 

ddl-auto : db 초기화 전략 설정

  • update : 변경된 스키마만 적용
  • create : 시작될 때 drop 후 다시 생성
  • create-drop : 시작과 종료 시 모두 drop

 

physical-strategy : 변수면 매핑 전략

  • ~.PhysicalNamingStrategyStandardImpl : 변수명과 DB 칼럼명 그대로 매핑
  • ImprovedNamingStrategy : 카멜 케이스를 언더스코어로 변경(userName -> user_name)

 

 

728x90
반응형

'Cloud > Docker' 카테고리의 다른 글

[Docker] Docker 명령어 정리  (0) 2021.05.14
[Docker] Windows10에 Docker 설치하기  (0) 2021.05.14