본문으로 바로가기

mysql과 연결할때 time zone과 관련된 오류 발생하는경우. 

 

You must configure either the server or JDBC driver (via the serverTimezone configuration property) to use a more specifc time zone value if you want to utilize time zone support.

 

mysql time zone 확인

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

 

Asia/Seoul로 안되어 있다면 변경

mysql> SET GLOBAL time_zone='Asia/Seoul';
mysql> SET time_zone = 'Asia/Seoul';

 

하지만 위 방법은 일회성이므로 mysql이 재실행 되면 설정이 유지되지 않음

centos7 기준 /etc/my.cnf   또는 my.cnf에 default-time-zone을 추가

default-time-zone='Asia/Seoul'

 

mysql 재실행

> systemctl restart mysqld

 

 

< 이때 변경이 안되고 오류 발생시 >

 

time_zone 테이블 확인

mysql> SELECT b.name, a.time_zone_id

FROM mysql.time_zone AS a

LEFT OUTER JOIN mysql.time_zone_name AS b

ON a.time_zone_id = b.time_zone_id;

 

time_zone이 없다면 shell에서 time_zone등록

# mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root -p mysql

 

 

다시 

mysql> SET GLOBAL time_zone='Asia/Seoul';
mysql> SET time_zone = 'Asia/Seoul';

 

#MySQL 접속후에 시간대 확인하기

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

 

#현재 시간 확인해보기

mysql> SELECT NOW();