기존에 h2 데이터베이스를 연결해서 사용하던 프로젝트에서 mysql db로 연동해보는 연습을 해봄.
( 코드 구현하면서 확인은 h2로 로컬에서 하면 되긴하는데 결국 db랑 연결해야한다고 해서...)
먼저 build.gradle에서 의존성을 추가해줘야함.
구글에 검색했을 때 인텔리제이에 mysql 연결하는 방법이 여러가지가 나왔는데 다 같은 흐름이었는데 이상하게 오류가 났다.
더보기
오류가 났던 상황
application.properties에서 MySQL 설정하는 부분 중
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
.mysql.cj.jdbc.Driver 이 부분이 빨간줄로 오류가 나는 상황
implementation 'mysql:mysql-connector-java'
-> 왜 인지 모르겠는데 오류가 났음.
implementation 'mysql:mysql-connector-java:8.0.33'
-> mysql 버전을 추가해준 경우 오류는 해결됐었는데 db에 정상적으로 연결이 안됐었음.
runtimeOnly 'com.mysql:mysql-connector-java'
-> 검색해보니 연동하는 입력 코드가 달라져서 오류가 났다고 함.
//build.gradle
dependencies {
...
runtimeOnly 'com.mysql:mysql-connector-j'
}

그리고 application.properties에 DB 설정 관련 정보를 기입
# MySQL 설정
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
# DB Source URL 설정
# 예시) spring.datasource.url=jdbc:mysql://localhost:3306/test_db?useSSL=false&useUnicode=true&serverTimezone=Asia/Seoul
spring.datasource.url=jdbc:mysql://<IP>:<PORT>/<DB NAME>?useSSL=false&useUnicode=true&serverTimezone=Asia/Seoul
# DB 사용자 이름 설정
# 예시) spring.datasource.username=root
spring.datasource.username=<MySQL ID>
# DB 사용자이름에 대한 암호 설정
# 예시) spring.datasource.password=root
spring.datasource.password=<MySQL PASSWORD>
# true 설정 시, JPA 쿼리문 확인 가능
spring.jpa.show-sql=true
# DDL(create, alter, drop) 정의 시, DB의 고유 기능을 사용할 수 있음.
spring.jpa.hibernate.ddl-auto=update
# JPA의 구현체인 Hibernate가 동작하면서, 발생한 SQL의 가독성을 높여줌.
spring.jpa.properties.hibernate.format_sql=true

인텔리제이 프로젝트 파일 실행 & mysql 서버 실행 후에 포스트맨을 통해서 요청 데이터 입력.
인텔리제이에서도 잘 등록 된 걸 확인했고 mysql 워크밴치를 통해서도 테이블에 데이터들이 제대로 삽입된 걸 확인함.


블로그 참고
[SpringBoot] SpringBoot + MySQL + JPA과 연동하기 + 테스트
개요 - SpringBoot에 MySQL을 연동해본다. - SpringBoot에 JPA를 연동해본다. - MySQL과 JPA를 연동 후, 테스트 오브젝트인 Memo 객체를 만들어서, SpringBoot를 실행한다. - (확인포인트) 실행 후에, 정상적으로 설
i5i5.tistory.com
'DB' 카테고리의 다른 글
| 데이터 모델링 (0) | 2024.04.03 |
|---|---|
| 오라클 환경 세팅(다운로드 및 설치) + 설치 오류 (0) | 2024.04.02 |
| 인텔리제이에 mysql 연결하는 방법 (0) | 2023.08.10 |
| DB관리툴 - DBeaver 설치 및 mysql 연결 (0) | 2023.08.09 |
| mysql 실행(mysqld_safe A mysqld process already exists 오류) (0) | 2023.08.09 |