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&
도 같이..)