[ERR] r2dbc connector…

아무튼 간에·2023년 1월 30일
0

에러/오류

목록 보기
8/9

개발환경

OS: Windows 11
IDE: IntellJ IDEA 2022.2.4 (Ultimate Edition)
Java: 1.8
DB: MariaDB(10.9.3-MariaDB-1:10.9.3+maria~ubu2204)

Framework: Springframework.boot version: 2.4.3
Dependencies:

implementation "org.springframework.boot:spring-boot-starter-data-r2dbc"
implementation group: 'javax.persistence', name: 'javax.persistence-api', version: '2.2'

...

상황

connector 들이 다 온전치 못해서 예상치 못한 오류를 너무 뱉는다..

바쁘니까 대충 찾아본 결과 mariadb 커넥터는 maven 형태만 지원하고 gradle은 테스트만 지원하는 거 같은데 이부분이 잘 이해가 되지 않는다… ((Official) r2dbc-mariadb - native driver implemented for MariaDB) 그래서 위의 드라이버로 검색해보다가 찾은 gradle 코드로 넣어서 돌려보았는데

java.lang.NoClassDefFoundError: io/r2dbc/spi/Result$Message

이런 오류가 난다… 짱남

mariadb의 경우 mysql 커넥터로도 사용이 가능한 부분이라 일단 mysql 커넥터로 하고 있긴 했었다. 처음 따라했던 블로그에선 jasync 드라이버를 사용하고 있어서 그대로 적용했는데 select 할 때 객체 파싱을 제대로 하지 못하고 있어서 찾아보던 차에 miku가 그나마 공식적으로 명시된 커넥팅 드라이버더라...
(Official) r2dbc-mysql - native driver implemented for MySQL

바꿔보자..


해결

implementation 'dev.miku:r2dbc-mysql:0.8.2.RELEASE'

miku 드라이버를 적용했더니 위에서 발생하던 오류는 나지 더 이상 나지 않았다.

그러나 또 다른 이슈가 발생...

상황

[WARN] dev.miku.r2dbc.mysql.MySqlConnection - The server timezone is <KST> that's unknown, trying to use system default timezone

해결

spring: 
	r2dbc:
    url: r2dbc:pool:mysql://192.168.11.161:3306/mmsdb?useUnicode=true&serverTimezone=Asia/Seoul
    username: mcm
    password: champion1234!@

r2dbc url에 serverTimezone=Asia/Seoul 추가해줌(겸사겸사 useUnicode=true&도 같이..)


참고

profile
armton garnet

0개의 댓글