티스토리 뷰

728x90
반응형

이슈

Spring Boot 2.7.8 버전 업그레이드 시 mysql-connector-java 의존성 에러가 발생

원인

MySQL JDBC Driver가 mysql-connector-java -> com.mysql:mysql-connector-j 으로 변경됨

https://github.com/spring-projects/spring-boot/releases/tag/v2.7.8

조치

com.mysql:mysql-connector-j 으로 의존성 변경

#AS-IS
implementation 'mysql:mysql-connector-java'
#TO-BE
implementation 'com.mysql:mysql-connector-j'

 

https://mvnrepository.com/artifact/com.mysql/mysql-connector-j

 

이슈2

Amazon Aurora MySQL DB를 사용할 때 mariadb-java-client 의존성으로 Driver 연결이 불가

원인

mariadb-java-client 3.x 이상 부터는 mariadb:aurora 모드를 지원하지 않는다.

Version 3.0.3 of the MariaDB JDBC Driver (Connector/J) no longer supports Amazon Aurora. We recommend using the AWS Advanced JDBC Wrapper Driver .

 

https://aws.amazon.com/ko/blogs/database/using-the-mariadb-jdbc-driver-with-amazon-aurora-with-mysql-compatibility/

조치

software.aws.rds:aws-mysql-jdbc 의존성 추가

implementation 'software.aws.rds:aws-mysql-jdbc:1.1.11'

https://mvnrepository.com/artifact/software.aws.rds/aws-mysql-jdbc

 

AWS JDBC 드라이버로 교체하고, 접속 URL 접두사 jdbc:mysql://을 jdbc:mysql:aws://로 변경

url: jdbc:mysql:aws://{host}:{port}
driver-class-name: software.aws.rds.jdbc.mysql.Driver

IP 주소 타입으로 접속해야한다면 clusterInstanceHostPattern 파라미터를 붙여줘야한다.

"?. + HOSTNAME 규칙으로 작성

jdbc:mysql:aws://10.10.10.10:3306/DBNAME?clusterInstanceHostPattern=?./db-identifier.cluster-XYZ.us-east-2.rds.amazonaws.com:3306

 

이슈3

aws-mysql-jdbc는 Read-Write Splitting을 지원하지 않는다. ( aws-mysql-jdbc 1.1.11 기준)

AWS Aurora에서 read-only 일 때 reader에서 실행되는 load-balancing을 사용하려면 mariadb:aurora 모드를 사용해야하는데

mariadb-java-client 3.x 이상 부터는 mariadb:aurora 모드를 지원하지 않는다.

대안으로 mariadb:replication 모드를 사용해봤지만 writer, reader 분산처리가 될 뿐 read-only에서 writer에서도 실행된다.

결국 mariadb-java-client 2.x 으로 명시해서 mariadb:aurora 모드를 사용해야한다.

implementation 'com.mysql:mysql-connector-j'
implementation 'org.mariadb.jdbc:mariadb-java-client:2.7.11'
url: jdbc:mariadb:aurora://[Writer]:3306,[Reader]:3306/
driver-class-name: org.mariadb.jdbc.Driver

 

 

 

https://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/Aurora.Connecting.html#Aurora.Connecting.JDBCDriverMySQL

https://github.com/awslabs/aws-mysql-jdbc#amazon-web-services-aws-jdbc-driver-for-mysql

https://github.com/awslabs/aws-mysql-jdbc/issues/237

https://keichee.tistory.com/470

https://mariadb.com/kb/en/about-mariadb-connector-j/#failover-and-load-balancing-modes

728x90
반응형
반응형
300x250