[MySQL] DB Time Zone 변경


간혹 MySQL DB 작업 완료 후 DB 시간이 UTC 로 표시되는 현상이 발생하는 경우가 있습니다.
이런 경우 KST 로 표시 되도록 변경하는 방법을 확인해 보도록 하겠습니다.

우선 DB 접속에 접속 합니다.

DB 의 Time Zone 설정이 되어 있는지 아래와 같이 확인 합니다.
Time Zone 설정이 되어 있지 않다면 아래와 같이 표시됩니다 .

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


image





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;

image







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

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

image






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

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

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







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

mysql> SELECT NOW();

image




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

mysql> select @@time_zone;



image

댓글

  1. 안녕하세요 질문이 있습니다.
    리눅스 환경에서
    $mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root -p mysql 을
    입력하지 않고 해봤는데 안되더라고요..
    궁금한데 리눅스 환경 어느 경로에서
    위 에 명령어를 입력해야하나요??

    답글삭제
  2. 저를 살려주셔서 감사합니다. 복받으세요.

    답글삭제

댓글 쓰기

주간 인기글

[Spring Boot] JPA + Pageable 을 이용한 페이징 처리

SPA(Sigle Page Applications) 란 무엇인가?

[앱 디자인] 디자인 가이드 만들기 - 안드로이드

[AWS] Bastion Host 를 활용한 SSH 접근통제 #1

[앱 디자인] 디자인 가이드 만들기 - 아이폰