2020. 3. 20. 14:41ㆍCentOS 7/Basic
- 개요
- timezone 조회
- timezone 변경
3-1) timedatectl 명령어를 이용한 변경
3-2) /etc/localtime 심볼릭 링크 직접 변경 - 결과
- zdump를 이용 timezone 파일 조회
1. 개요
MySQL 서버의 system_time_zone은 시스템에 설정된 timezone을 나타냅니다.
my.cnf에 default_time_zone을 설정하거나
runtime의 time_zone에 timezone을 변경해도 @@system_time_zone은 변경되지 않습니다.
mysql> select @@system_time_zone; +--------------------+ | @@system_time_zone | +--------------------+ | JST | +--------------------+
시스템의 timezone이 JST로 설정되어 있네요.
@@system_time_zone을 바꾸고 싶다면, CentOS 7 서버에 설정된 timezone을 변경해야 합니다.
2. timezone 조회
서버의 timezone을 조회하는 방법은 다양합니다.
그중, 간단하게 localtime을 조회하는 명령어인 date
와 상세한 timezone 정보를 조회하는 timedatectl
를 살펴보도록 하겠습니다.
시스템 날짜 및 시각을 출력하는 date 명령어를 실행해봅니다.
[jini@apple ~]$ date 2020. 08. 30. (일) 00:16:34 JST
date 명령어는 한줄로 간단하게 시스템 시각을 출력합니다.
MySQL에서와 마찬가지로 timezone이 JST
로 나왔습니다.
※ 참고로 datetime format은 각 터미널 환경에 따라 다를 수 있습니다.
[jini@apple ~]$ timedatectl Local time: 일 2020-08-30 00:17:03 JST Universal time: 토 2020-08-29 15:17:03 UTC RTC time: 토 2020-08-29 15:17:02 Time zone: Japan (JST, +0900) NTP enabled: yes NTP synchronized: yes RTC in local TZ: no DST active: n/a
timedatectl 명령어를 이용하면 보다 자세하게 timezone 정보를 확인할 수 있습니다.
date 명령어든 timedatectl 명령어든 출력형식은 다르지만 내부적으로는 /etc/localtime
심볼릭 링크가 가리키고 있는 타임존에 의해 출력됩니다.
[jini@apple ~]$ ll /etc/localtime lrwxrwxrwx 1 root root 25 Jan 20 17:38 /etc/localtime -> /usr/share/zoneinfo/Japan
3. timezone 변경
timezone 을 변경하기 위해서는 /etc/localtime 심볼릭링크가 가리키는 타임존을 변경하면 됩니다.
직접 링크를 변경해도 되고, timedatectl 명령어를 이용하여 변경해도 됩니다.
timedatectl 명령어르 사용하는 것도 내부적으로는 /etc/localtime 링크를 변경하는 것이니 어떤 방식을 사용해도 상관없습니다.
3-1) timedatectl 명령어를 이용한 변경
[jini@apple ~]$ timedatectl list-timezones | grep -i seoul Asia/Seoul
timedatectl list-timezones
를 이용하면 지원하는 타임존 목록을 확인할 수 있습니다.
그 중, 저는 seoul 문자열이 표함된 타임존을 조회해보았습니다.
[jini@apple ~]$ sudo timedatectl set-timezone Asia/Seoul
set-timezone
를 이용하여 타임존을 변경하였습니다.
[jini@apple ~]$ timedatectl Local time: 일 2020-08-30 00:42:22 KST Universal time: 토 2020-08-29 15:42:22 UTC RTC time: 토 2020-08-29 15:42:21 Time zone: Asia/Seoul (KST, +0900) NTP enabled: yes NTP synchronized: yes RTC in local TZ: no DST active: n/a
다시 타임존을 조회해보니, 타임존이 Asia/Seoul로 변경된 것을 확인 할 수 있습니다.
[jini@apple ~]$ ll /etc/localtime lrwxrwxrwx 1 root root 32 8월 30 00:42 /etc/localtime -> ../usr/share/zoneinfo/Asia/Seoul
/etc/localtime 의 링크 역시 잘 바뀌었네요.
3-2) /etc/localtime 심볼릭 링크 직접 변경
[jini@apple ~]$ sudo ln -sf /usr/share/zoneinfo/Asia/Seoul /etc/localtime
/etc/localtime
이 가리키는 대상을 /usr/share/zoneinfo/Asia/Seoul
로 변경합니다.
(※ 기존파일에 덮어쓰기 위해 -f 옵션을 추가했습니다.)
4. 결과
MySQL 서버에서도 시스템 타임존이 변경되었는지 확인해봅시다.
변경된 서버의 시스템 설정 정보가 MySQL에 반영되기 위해 MySQL을 restart 합니다.
시스템 설정 변경된 정보를 mysql에 반영하기 위해 mysql을 restart 합니다.
[jini@apple ~]$ sudo systemctl restart mysqld
그리고 mysql client 접속하여 @@system_time_zone을 조회합니다.
mysql> select @@system_time_zone; +--------------------+ | @@system_time_zone | +--------------------+ | KST | +--------------------+
mysql> SELECT TIMEDIFF(NOW(), UTC_TIMESTAMP); +--------------------------------+ | TIMEDIFF(NOW(), UTC_TIMESTAMP) | +--------------------------------+ | 09:00:00 | +--------------------------------+
KST는 UTC+09:00 입니다.
UTC_TIMESTAMP와의 시간차가 09:00:00
이니 정상적으로 설정되었음을 알 수 있습니다.
5. zdump를 이용 timezone 파일 조회
/etc/localtime
은 텍스트형 데이터가 아니기 때문에 vim 명령어로 읽어들일 수 없습니다.
zdump 명령어를 이용하면 timezone을 읽을 수 있습니다.
[jini@apple ~]$ zdump /etc/localtime /etc/localtime Sun Aug 30 00:58:43 2020 KST [jini@apple ~]$ zdump /usr/share/zoneinfo/Asia/Seoul /usr/share/zoneinfo/Asia/Seoul Sun Aug 30 00:58:46 2020 KST
[jini@apple ~]$ zdump /usr/share/zoneinfo/UTC /usr/share/zoneinfo/UTC Sat Aug 29 15:58:48 2020 UTC
+++
- CentOS 7 timezone 변경하기
- MySQL @@system_time_zone 변경하기
- timedatectl을 이용한 timezone 변경
- /etc/localtime 읽기
'CentOS 7 > Basic' 카테고리의 다른 글
[CentOS 7] ssh config를 이용하여 간편하게 ssh접속하기 (0) | 2020.10.18 |
---|---|
[Suricata 5] 1. CentOS 7에 suricata 5 설치하기 (0) | 2020.07.10 |
[CentOS 7] ntpdate 명령어를 이용하여 NTP 서버와 시간 동기화 (0) | 2020.02.26 |
[CentOS 7] history 명령어로 사용한 명령어 확인 및 재사용 (0) | 2020.01.03 |
[CentOS 7] scp로 원격 파일 전송하기 (0) | 2019.11.14 |