web

[SpringBoot] Maria DB 연결

growbook91 2023. 11. 27. 22:04

Spring boot 공부하면서 개인서버를 운영해보고 싶다는 생각이 들어서 데이터베이스 서버도 직접 linux 깔아서 spring boot 연결했다.

 

Linux ubuntu 22.04.3 LTS 버전이다.

 

Maria DB 설치

 

설치는 굉장히 간단하다.

(root 권한에서 다음 명령어들을 실행하길 권장한다.)

 

아래 명령어를 입력하면 mariadb 깔린다.

apt -y install mariadb-server mariadb-client

 

 

후에 restart, enable, status 명령어를 통해서 mariadb 서비스를 재시작하고 부팅시 자동으로 시작되도록 enable 한다.

systemctl restart mariadb
systemctl enable mariadb

 

 

다음 명령어를 입력해서 아래 같은 결과물이 나온다면 성공..!

systemctl status mariadb

 

Mariadb 포트인 3306 포트를 열어주자.

ufw allow 3306

 

마지막으로 다음 명령어를 입력해 mariadb 정상적으로 작동하는지 보자.

mysql

 

권한 부여

 

권한을 부여하는 있어서 전적으로 아래 링크를 참고했다.

https://velog.io/@ejayjeon/MYSQL-1.-%EA%B3%84%EC%A0%95-%EC%83%9D%EC%84%B1-%EA%B6%8C%ED%95%9C-%EB%B6%80%EC%97%AC

 

[MYSQL] 1. 계정 생성 / 권한 부여

<small style="color: SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, RELOAD, SHUTDOWN, PROCESS, FILE, REFERENCES, INDEX, ALTER, SHOW DATABASES, SUPER

velog.io

 

하지만, 주의해야 점은 grant 명령어로 권한을 부여할 때에 all privileges 하는 바람직해보이지 않는다.

 

그래서

GRANT SELECT, INSERT, UPDATE, DELETE, CREATE ON `web_mobile_invitation`.* TO `web_user`@`%`

까지만 했다.

 

Spring boot에 mariadb 추가

 

제일 먼저는 project root 있는 build.gradle 수정해야 한다.

Dependencies 쪽에 다음과 같이 mariadb를 추가해주자. Version 일단, 2.4.1 했는데 다른 버전으로 수정해도 무방할 것이다.

 

dependencies{
.
.
생략
.
.
implementationgroup:'org.mariadb.jdbc',name:'mariadb-java-client',version:'2.4.1'

}

 

그리고 당연하게도 gradle 탭에서 reload 버튼을 한번 눌러줘야 한다.

 

 

이번에는 /src/resources/appliction.properties 파일을 수정해서 접속해야 하는 서버 정보와 db, username등을 적어주자.

spring.jpa.hibernate.ddl-auto=update

spring.datasource.driverClassName=org.mariadb.jdbc.Driver

#개발용

spring.datasource.url=jdbc:mariadb://[서버 ip 혹은 domain name]:3306/[DB명]

# 배포용

#spring.datasource.url=jdbc:mariadb://localhost:3306/[DB명]

spring.datasource.username=[username]

spring.datasource.password=[비밀번호]

 

위에 보면, 개발용 배포용 따로 있는데

개발 때는 database 서버에 접속하기 위해서 저렇게 해둔 것이고

배포 때는, 경우엔 web server 같은 linux 서버에 설치해뒀기 때문에 localhost 접속하게 했다.

 

그리고 최소한의 필요한 코드만 추가했다.

아래 링크를 보면 훌륭한 글이 있으니 참고바란다.

https://wecandev.tistory.com/71

 

[Spring Boot] MariaDB + JPA 연동하기

Spring Boot+JPA+MariaDB 시작하기 Spring Boot + JPA + mariaDB 조합 프로젝트 설정을 정리하고자 한다. https://start.spring.io/ 에서 dependency를 추가하여 프로젝트를 생성한 뒤 적절하게 DB 및 logging 설정을 입력하

wecandev.tistory.com