[Spring boot] com.mysql.jdbc.Connection.isValid(I)Z at

    에러메세지

    java.lang.AbstractMethodError: com.mysql.jdbc.Connection.isValid(I)Z at com.zaxxer.hikari.pool.PoolBase.checkValidationSupport(PoolBase.java:464) ~[HikariCP-4.0.3.jar:na] at com.zaxxer.hikari.pool.PoolBase.checkDriverSupport(PoolBase.java:447) ~[HikariCP-4.0.3.jar:na] at com.zaxxer.hikari.pool.PoolBase.setupConnection(PoolBase.java:416) ~[HikariCP-4.0.3.jar:na] at com.zaxxer.hikari.pool.PoolBase.newConnection(PoolBase.java:369) ~[HikariCP-4.0.3.jar:na] at com.zaxxer.hikari.pool.PoolBase.newPoolEntry(PoolBase.java:206) ~[HikariCP-4.0.3.jar:na] at com.zaxxer.hikari.pool.HikariPool.createPoolEntry(HikariPool.java:476) ~[HikariCP-4.0.3.jar:na] at com.zaxxer.hikari.pool.HikariPool.checkFailFast(HikariPool.java:561) ~[HikariCP-4.0.3.jar:na] at com.zaxxer.hikari.pool.HikariPool.<init>(HikariPool.java:115) ~[HikariCP-4.0.3.jar:na] at com.zaxxer.hikari.HikariDataSource.getConnection(HikariDataSource.java:112) ~[HikariCP-4.0.3.jar:na] at org.springframework.jdbc.datasource.DataSourceUtils.fetchConnection(DataSourceUtils.java:159) ~[spring-jdbc-5.3.18.jar:5.3.18] at org.springframework.jdbc.datasource.DataSourceUtils.doGetConnection(DataSourceUtils.java:117) ~[spring-jdbc-5.3.18.jar:5.3.18] at 
    ...

    스프링부트에서 MySQL을 JDBCTemplate으로 연동하는 도중 위와 같은 에러가 떨어졌다.

     

    application.properties

    ## MySQL
    spring.datasource.url=jdbc:mysql://127.0.0.1:3306/xxxxxx
    spring.datasource.username=xxxx
    spring.datasource.password=xxxxxx
    spring.datasource.driver-class-name=com.mysql.jdbc.Driver

     

    만약 위와 같이 driver-class-name이 다음과 같이 지정이 되어 있다면, 해당 드라이버를 properties에서 삭제한다. 해당 에러는 클래스 버전 문제로 com.mysql.jdbc.Connection.isValid(I)Z 부분이 구현 안되어 있는 것으로 보인다.

     

    https://stackoverflow.com/questions/32783706/java-lang-abstractmethoderror-com-mysql-jdbc-connection-isvalidiz

     

    위 driver-class-name 부분을 삭제하니 문제가 없이 작동이 잘된다. 만약 위와 같은 드라이버를 써야 하는 경우라면 아래와 같이 valid 부분을 properties로 추가한다.

     

    ## MySQL
    spring.datasource.url=jdbc:mysql://127.0.0.1:3306/xxxxxx
    spring.datasource.username=xxxxx
    spring.datasource.password=xxxxxx
    spring.datasource.driver-class-name=com.mysql.jdbc.Driver
    spring.datasource.hikari.connection-test-query=SELECT 1

     

    해당 드라이버를 쓸 필요가 없이 스프링 부트에서 제공하는 드라이브를 쓸 경우

     

    ## MySQL
    spring.datasource.url=jdbc:mysql://127.0.0.1:3306/xxxxxx
    spring.datasource.username=xxxxx
    spring.datasource.password=xxxxxx

     

    이왕이면 하단의 방식을 하고, 사유가 있을 경우 connection-test-query를 추가한다.

     

    반응형

    댓글

    Designed by JB FACTORY