본문으로 바로가기

MYSQL Timezone 시간 설정 방법

category IT. 2017. 5. 24. 00:52

MYSQL Timezone 시간 설정 방법


안녕하세요.

까무입니다.


MYSQL Timezone 시간 설정 방법에 대해서 알아보겠습니다.


MYSQL는 대부분 리눅스의 시간을 따라갑니다.


하지만, 해외 서버에서 호스팅을 받을 경우에는 리눅스 시간이 해외 기준으로 되어있지요.

이 경우에는 리눅스 시간을 한국 시간으로 KST 바꿔주시면 됩니다.


그렇게 저는 리눅스 시간을 바꿨지만...

이상하게 MYSQL의 시간은 변경되지 않았습니다.


그래서 알아보다가 알게된.. MYSQL Timezone 타임존....


지금부터 설명드리도록 하겠습니다.


MYSQL에도 Timezone 이라고 하여, 타임존이 존재합니다.


select b.name, a.time_zone_id  from mysql.time_zone a, mysql.time_zone_name b where a.time_zone_id = b.time_zone_id and b.name like '%Seoul';

명령 구문을 입력해보세요.


mysql> select b.name, a.time_zone_id  from mysql.time_zone a, mysql.time_zone_name b where a.time_zone_id = b.time_zone_id and b.name like '%Seoul';

+------------------+--------------+

| name             | time_zone_id |

+------------------+--------------+

| Asia/Seoul       |          307 |

| posix/Asia/Seoul |          899 |

| right/Asia/Seoul |         1492 |

+------------------+--------------+

3 rows in set


라고 뜹니다.

(참고로, 타임존이 등록되어 있지 않으면 NULL 값이 나옵니다)


타임존이 등록되어 있지 않습니다.


mysql> select @@system_time_zone;

+--------------------+

| @@system_time_zone |

+--------------------+

| EEST               |

+--------------------+

1 row in set


KST가 아닌 다른 해외 기준으로 되어 있습니다.



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

+----------+

| count(*) |

+----------+

|        0 |

+----------+

1 row in set


타임존에 대한 정보를 출력하니, 아무것도 없다고 나옵니다 !

그래서 KST 기준이 없기 때문에 리눅스 시간을 변경해도

MYSQL 시간대가 변경되지 않았던 것입니다.


해결방법은 이렇습니다.


리눅스 콘솔창에서

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




입력 후에 mysql 비밀번호 입력을 합니다.

mysql에 타임존 정보가 들어갑니다.


이제, 타임존 시간대를 서울로 설정하세요.

set time_zone = 'Asia/Seoul';


mysql> set time_zone = 'Asia/Seoul';

Query OK, 0 rows affected


mysql> select @@time_zone;

+-------------+

| @@time_zone |

+-------------+

| Asia/Seoul  |

+-------------+

1 row in set


mysql> select now();

+---------------------+

| now()               |

+---------------------+

| 2017-05-24 00:50:23 |

+---------------------+

1 row in set


정상적으로 MYSQL 시간대가 KST 시간대로 변경되었습니다.


그 이후에는 mysql 를 재시작 시켜주시기 바랍니다.

systemctl restart mariadb (기타 등등)


감사합니다.


이것으로 MYSQL Timezone 시간 설정 방법 포스팅을 모두 마치겠습니다.


'IT.' 카테고리의 다른 글

리플코인에 대해서 알아보자.  (2) 2017.05.24
가상 서버, 클라우드 호스팅 VULTR 소개 !  (1) 2016.10.03
카스퍼스키 시스템 메카닉  (0) 2016.09.13