[MySQL] 이클립스 JDBC / MySQL 연동오류 해결법

2020-11-23


오늘은 mysql 연동 시 발생하는 문제에 발생에 대하여 알아보겠다. 우선적으로 아래와 같이 자신의 프로젝트에 Build Path를 통해 Referenced Libraries에 정상적으로 mysql-connector jar 파일이 들어갔는지부터 확인 바란다.


내가 접한 오류는 아래와 같다.

(This is deprecated. . . . .)

(The sever time zone value  . . . .  is unrecognized . . . . . .)

 

보는것과 같이 막대한 양의 오류 메시지 중에 눈에 띄는 두 가지가 있다. 현재 나의 드라이버가 URL과 타임존에 오류가 있다는 것 같다. (뭐 사실.. 오류 메시지에 비해서 해결법은 매우 간단하다.)

 

이와 같은 오류는 mysql의 버전이 업데이트에 따른 기존에 url과 Class.forName()으로 가져오는 class의 문제이다.

구 버전 mysql을 jdbc에 연동해 사용했다면, 아마 아래와 같은 코드를 사용했을 것이다.

이와 같은 내용에서 화살표로 표시한 url과 Class.forName()의 내용을 조금만 수정해주면 된다.

수정한 내용은 아래와 같다.


String url = "jdbc:mysql://localhost:3306/(자신의 데이터 베이스이름)?serverTimezone=UTC";

?serverTimezone=UTC 질의문이 추가됨

Class.forName(com.mysql.cj.jdbc.Driver");

cj 가 추가됨

close가 실행되지 전에 System.out.println을 통해서 각각의 코드가 오류 없이 동작하는지만 체크한 결과 정상적으로 오류 문구가 나타나지 않고 콘솔 창에 "정상실행"이 출력되는 것을 확인할 수 있다.