IT/WEB

[JAVA] ### Error querying database. Cause: org.springframework.jdbc.CannotGetJdbcConnectionException: Could not get JDBC Connection; nested exception is java.sql.SQLException: Cannot load JDBC driver class 'org.git.mm.mysql.Driver'

오달달씨 2021. 1. 19. 15:30
728x90
반응형

jdbc 드라이버 "org.gjt.mm.mysql.Driver"는 무엇입니까?

 

What is the jdbc driver "org.gjt.mm.mysql.Driver" for?

After taking over a coworker's project I noticed he was using "org.gjt.mm.mysql.Driver" as the jdbc driver for MySQL 5 instead of the more common one "com.mysql.jdbc.Driver". They both are contain...

stackoverflow.com

유지보수하고 있는 WEB의 TB에서 해당 에러가 나왔다. 왜 이걸 이제야 발견했지..?

 

### Error querying database. Cause: org.springframework.jdbc.CannotGetJdbcConnectionException: Could not get JDBC Connection; nested exception is java.sql.SQLException: Cannot load JDBC driver class 'org.git.mm.mysql.Driver' 

 


1. Cannot load JDBC driver class 에러는 근본적으로 mysql 드라이버를 읽을 수 없다는 말이다. 따라서 mysql_connector.jar 파일을 다운받아 lib 디렉토리에 넣어주었다.

 

mysql-connector-java-5.1.48-bin.jar
0.96MB

 

해당 jar 파일을 다운받아서 lib에 넣었다.

 

 

2. 의아한 점이 있었다. 서비스 중인 WEB의 lib디렉토리에는 mysql_connect하는 jar파일이 존재하지 않았다. 

또한 JDBC 드라이버로 대게 com.mysql.jdbc.Driver를 사용하는데 org.git.mm.mysql.Driver는 처음 본 드라이버였다. 현재 서비스 중인 WEB(상용, TB 모두)에서 jdbc 드라이버로 "com.mysql.jdbc.Driver"대신 "org.gjt.mm.mysql.Driver"를 사용하고 있음을 발견했다. 

 

다행히도 상용에서 해당 에러는 발견하지 못하였는데, 추측컨데 상용에서 서비스 중인 WEB은 TOMCAT 7로 기동하고 있고, TB에서는 TOMCAT 8.5로 기동하고 있어서 그런 것 같다. (여러가지 의심가는 원인은 있으나 대략,,,)

 

무튼 현재 상용은 문제없이 정상작동하고 있으니 TB만 수정 적용하였다. 1번과 2번을 진행하니 쿼리가 DB에 정상접근 하는 것을 확인하였다.

 

'org.git.mm.mysql.Driver'에 대해서 조사해본 결과 : 

MySQL JDBC 드라이버는 처음에는 취미가가 개발했습니다. 나중에 패키지 / 클래스 이름을 변경 한 MySQL에 기부됩니다. 이전 클래스 이름은 이전 버전과의 호환성을 위해 유지되지만 com.mysql.jdbc.Driver로 가능한 빨리 업데이트해야 합니다.

 

 

 

728x90
반응형