Mysql JDBC Connector TimeZone 에러

Database/Mysql & Mariadb / /
728x90

Mysql JDBC로 연결 시 다음과 같은 Error를 만날 때가 있다.

Java.sql.SQLException: The server time zone value 'KST' is unrecognized or represents more than one time zone. 

You must configure either the server or JDBC driver (via the 'serverTimezone' configuration property) to use a more specific time zone value

if you want to utilize time zone support.

    at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)

 

해당 에러는 Connector 5.1 에서는 시스템 기본 timezone 을 사용하므로 발생하지 않고

8부터 발생하는데 명시적으로 어떤 timezone 을 사용하는지 지정해 주어서 해결할 수 있다.

 

아래와 같은 방법으로 해당 에러가 해결 가능하다.

1.     JDBC URL 변경

다음과 같이 JDBCMysql에 연결 시 timezone을 명확히 지정해 준다.

jdbc:mysql://localhost/db?useUnicode=true&serverTimezone=Asia/Seoul

 

2.     Mysql Option 변경

해당 방법은 Mysql 재시작이 필요하다.

cnf 파일에 해당과 같은 옵션을 추가한다.

예제의 Asia/Seoul UTC9시간 차이가 발생하기 때문에 다음과 같이 변경한다.

[mysqld]

default_time_zone = '+09:00'

 

728x90

'Database > Mysql & Mariadb' 카테고리의 다른 글

MySQL 8 기본 collation 이슈  (0) 2021.10.07
MySQL 8 계정 이슈  (0) 2021.10.06
Visual code on Mysql (Mariadb)  (0) 2021.07.02
재귀 쿼리를 이용한 전년도 같은 주차 조회  (0) 2021.06.02
Mariadb Connect Engine  (0) 2021.04.13
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기