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
권한 부여
권한을 부여하는 데 있어서 전적으로 아래 링크를 참고했다.
[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
'web' 카테고리의 다른 글
[Spirng boot] 라즈베리파이에서 웹 어플리케이션 베포 (0) | 2023.10.26 |
---|---|
[CSS] 중앙 정렬 (0) | 2022.11.24 |
[CSS] 자연스럽게 특정 위치로 scroll하기 (0) | 2022.11.04 |