새소식

300x250
2. 웹개발/Error모음

[JAVA] Loading class 'com.mysql.jdbc.Driver'. This is deprecated. The new driver class is 'com.mysql.cj.jdbc.Driver'.

  • -
728x90

[JAVA] Loading class 'com.mysql.jdbc.Driver'. This is deprecated. The new driver class is 'com.mysql.cj.jdbc.Driver'.

 

1. 에러 로그

스프링 부트 기동시 다음과 같은 경고 메세지를 본 적이 있을 것 이다.

Loading class `com.mysql.jdbc.Driver'. This is deprecated. 
The new driver class is `com.mysql.cj.jdbc.Driver'. 
The driver is automatically registered via the SPI and manual loading of the driver class is generally unnecessary.

 

2. 원인 확인 및 해결 방법

※ 사실 동작 불가능한 에러는 아니다. com.mysql.jdbc.Driver가 옛날 버전이기 때문에 com.mysql.cj.jdbc.Driver로 바꿔달라는 내용인데 간단한 내용이니, 해결 방법 부터 알아 본 후 원인을 확인해보자.

 

1) 해결 방법

1.1) resources 하위 log4jdbc.log4j2.properties 파일을 생성 하거나 열자

1.2) 다음 내용을 입력 한다.

log4jdbc.auto.load.popular.drivers=false
log4jdbc.drivers=com.mysql.cj.jdbc.Driver

1.3) 이후 재기동하면 정상적으로 동작하는것을 확인할 수 있다.

 

 

2) 오류 원인

▶ mysql driver가 업데이트 되면서 Driver Class가 변경 되었다.

 

2.1) 예전 버전 : com.mysql.jdbc.Driver

ex) 5.5

 - 해당 url 참고  http://download.nust.na/pub6/mysql/doc/refman/5.5/en/connector-j-usagenotes-basic.html

 

2.2) 현재 버전 : com.mysql.cj.jdbc.Driver

ex) 8.1

 - url 참고 : https://dev.mysql.com/doc/connector-j/8.1/en/connector-j-usagenotes-connect-drivermanager.html

 

 

3) 적용 후 결과 확인

 - 적용 전 먼저 Logging 레벨을 Debug로 적용 하여 오류 메세지를 확인 해보자.

 - log4jdbc.auto.load.popular.drivers 가 자동 설정 되어 있으며

   log4jdbc drivers가 정의 되어 있지 않다고 한다. 

 

 - 다음과 같이 properties 수정 ( 제일 밑 2개의 설정 auto.load.popular.drivers, drivers ) 

 - 재기동 해보자. 관련 오류가 사라짐과 동시에 

 - log4jdbc.auto.load.popular.drivers 가 자동 설정이 off 되어 있고

   log4jdbc drivers가 우리가 지정한대로 변경되었음을 확인할 수 있다. 

 

개발자라면 거슬렸던 빨간 문구가 사라진 것을 볼 수 있다.

300x250
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.