[MySQL] DB Time Zone 변경

 [MySQL] DB Time Zone 변경

SQL Developer에 MySQL을 연동시키면서 Time Zone오류가 발생하여 연동이 되지 않았다.

에러 : 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 specifc time zone value if you want to utilize time zone support.



찾아보니 MySQL DB작업 완료 후 DB 시간이 UTC로 표시되어 오류가 발생하는 경우가 종종있는듯 했다.

이런 경우 KST 로 표시되도록 변경해야한다. 

우선 DB에 접속한다.

DB 의 Time Zone 설정이 되어 있는지 아래와 같이 확인한다.

Time Zone 설정이 되어 있지 않다면 아래와 같이 표시된다.

mysql> select count(*) from mysql.time_zone;


















Time Zone 설정을 위해 리눅스 환경으로 돌아와  아래와 같이 입력한다. (입력하지 않아도 설정을 변경할 수 있었다.)

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



다시 DB 로 접속한다.




DB Time Zone 정보를 확인해 보면 아래와 같이 출력된다.

다를수도있지만 나 같은 경우에는 Time Zone 정보가 SYSTEM 으로 표시되어 있다.

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

















이제 Time_Zone 정보를 Seoul 기준으로 변경해 준다.

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

















정상적으로 변경이 완료 되었는지 다시 Time Zone 정보를 확인해 본다.

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













정상적으로 변경 된것을 확인 할 수 있다.







DB 내 시간정보를 확인해 보면 로컬 시간이 표시되는 것을 확인할 수 있다.

mysql> SELECT NOW();


















아래와 같이 Time Zone 정보를 다시 한번 확인해 보면 정상 적용된 것을 확인 할 수 있다.

mysql> select @@time_zone;

















댓글