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 변경
다음과 같이 JDBC로 Mysql에 연결 시 timezone을 명확히 지정해 준다.
jdbc:mysql://localhost/db?useUnicode=true&serverTimezone=Asia/Seoul
2. Mysql Option 변경
해당 방법은 Mysql 재시작이 필요하다.
cnf 파일에 해당과 같은 옵션을 추가한다.
예제의 Asia/Seoul 은 UTC와 9시간 차이가 발생하기 때문에 다음과 같이 변경한다.
[mysqld]
default_time_zone = '+09:00'
'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 |
최근댓글