우선 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'