Database/Mysql

mysql 5.x 버전에서 8.x버전으로 업그레이드 시 JDBC 연동 오류 해결

펌킨고구마 2022. 5. 19. 22:13
728x90
반응형

기존에 mysql5 버전에서 8로 업그레이드를 했다.

업그레이드 이후 기존 프로젝트를 실행시켰더니 오류가 난다. 

 

org.springframework.transaction.CannotCreateTransactionException: Could not open JDBC Connection for transaction; nested exception is org.apache.commons.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory 

 

이런 오류가 났다. 멀쩡히 잘 되던 프로젝트가 갑자기 안되니까 조금 당황

 

현재는 지난번에 추가했던 log4sql 을 넣어서

driverClassName 이 com.mysql.jdbc.Driver -> core.log.jdbc.driver.MysqlDriver 로 교체되어있는 중이였다.

 

 

아무래도 log4sql이 조금 오래된 라이브러리라 그런가, mysql 8 버전에서는 log4sql을 지원하지 않는것 같다.

다시 com.mysql.jdbc.Driver로 변경했으나 여전히 같은 오류가 났다.

 

 

검색해보니 드라이버클래스 네임을 변경하라는걸 보았다.

mysql 8 버전 이후에서는 com.mysql.cj.jdbc.Driver로 가운데 cj가 들어가야한다고 한다. 

그래서 교체 해보았다.

com.mysql.jdbc.Driver -> com.mysql.cj.jdbc.Driver

교체했더니 조금 다른 오류가 났다.

뭐냐면 해당 위에 변경한 클래스를 찾을수가 없단다.

라이브러리가 변경된 모양이다.

 

그럼 라이브러리를 변경하려고 한다.

 

현재 내 프로젝트에서 사용중인 mysql 라이브러리는 

mysql-connector-java-5.x.x.jar 

라는 라이브러리였고 해당 커넥터를 버전 8버전으로 변경할 예정이다.

 

mysql-connector library 를 찾아 넣어야한다.

 

1. mysql-connector.jar 파일 다운받으러 가기파일 버전은 원하는거 찾아서 다운로드하면된다.https://dev.mysql.com/downloads/connector/j/

 

MySQL :: Download Connector/J

MySQL Connector/J 8.0 is highly recommended for use with MySQL Server 8.0, 5.7 and 5.6. Please upgrade to MySQL Connector/J 8.0.

dev.mysql.com

 

중간에 있는 Select Operating System: 에서

Platform Independent 로 수정 한 후 zip 파일 다운로드 로그인하라고 뜨는데 굳이 로그인안해도 된다.

아래 No thanks, just start my download. 클릭시 바로 다운로드된다.

다운받은 파일 열어보면 mysql-connector-java-8.0.29.jar 파일이 있다. 

 

해당 파일로 library변경하자 잘 되었다. 

 


 

해당 라이브러리를 새로 다운로드하지않고 로컬환경에 설치된 mysql 경로에서 찾을 수 있다.

이 라이브러리는 설치된 아래 위치에서 찾을 수 있다. 

 

[C:\Program Files (x86)\MySQL\Connector J 8.0]

 

설치된 위치에 가면 mysql-connector-java-8.0.29.jar 가 있다. 

 

728x90
반응형
LIST