Woopii Vyeolog

[Spring Boot] 에러 'Caused by: java.lang.RuntimeException: Driver com.mysql.cj.jdbc.Driver claims to not accept jdbcUrl' 본문

Spring Boot

[Spring Boot] 에러 'Caused by: java.lang.RuntimeException: Driver com.mysql.cj.jdbc.Driver claims to not accept jdbcUrl'

WooPii 2024. 3. 6. 19:34

에러

[Caused by: java.lang.RuntimeException: Driver com.mysql.cj.jdbc.Driver claims to not accept jdbcUrl]

 

증상

Spring boot 에서 프로젝트 새로 만들고

DB세팅 후 spring을 시작하니 다음과 같은 에러가 났습니다.

 

Caused by: java.lang.RuntimeException: Driver com.mysql.cj.jdbc.Driver claims to not accept jdbcUrl, jdbc:mariadb://localhost:13306/test

 

원인

이 오류는 스프링 부트 애플리케이션이 MariaDB 데이터베이스에 연결하려고 할 때 발생하며, 

해당 문제가 발생하는데 여러 원인이 있지만

다음 두 가지 주요 원인이 있다고 합니다.

  1. 잘못된 JDBC 드라이버 사용
    • 스프링 부트 애플리케이션에서 MariaDB 데이터베이스에 연결하려면 'mariadb-java-client' JDBC 드라이버를 사용해야 합니다.
      하지만 애플리케이션에 'mysql-connector-java' 드라이버만 존재하거나 버전이 오래된 경우 이 오류가 발생할 수 있습니다.
  2. jdbcUrl 설정 오류:
    • application.properties 파일에서 spring.datasource.url 속성을 설정할 때 다음과 같은 오류가 발생할 수 있습니다.
    • jdbcUrl 형식 오류: jdbc:mariadb://localhost:13306/test 와 같이 올바른 형식으로 설정해야 합니다.
    • 포트 번호 오류: MariaDB 데이터베이스의 포트 번호가 올바르지 않은 경우 오류가 발생합니다.
    • 데이터베이스 이름 오류: 연결하려는 데이터베이스 이름이 올바르지 않은 경우 오류가 발생합니다.

 

저의 경우, 1번 원인에 해당하였습니다.

제 코드를 확인하니 다음과 같이 되어 있었습니다.

 

### build.gradle

dependencies {
	...
    
	/* Mysql Connector Java */
	implementation 'mysql:mysql-connector-java'
    
    ...
}

 

 

해결

 

gradle에서 입력한 해당 mysql-connector-java 라이브러리를 다음과 같이 수정했습니다.

 

### build.gradle

dependencies {
	...
    
	/* Mariadb Java Clinet */
	implementation 'org.mariadb.jdbc:mariadb-java-client'
    
    ...
}

 

 

이렇게 하니 해당 에러가 사라지는 것을 확인했습니다.

Comments