본문 바로가기
🔧 트러블슈팅 노트

[MariaDB] Java.sql.SQLException: The server time zone value 'KST' is unrecognized 문제 해결

by cheonvi 2024. 6. 25.

 

우선 db에  설정된 타임존을 아래와 같이 조회를 해 봅니다. 

 

SELECT @@global.time_zone, @@session.time_zone;

 

타임존이 SYSTEM으로 나오게 되면 별도로 지정이 되어 있지 않다는 뜻입니다.  

 

타임존의 설정은 두 가지 방법으로 할 수 있습니다. 첫 번째는 JDBC URL 문자열에 타임존 정보를 옵션으로 추가할 수 있습니다. 두 번째는 서버에 기본 설정을 추가할 수 있습니다. 각각의 방법을 알아보겠습니다.

 

 

방법 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'