DB/MySQL

[MariaDB] 시간대 (time-zone) 설정하기

채윤아빠 2021. 4. 26. 22:33
728x90
반응형

현재의 시간대를 확인하는 방법은 다음과 같습니다.

MariaDB [(none)]> SELECT @@global.time_zone, @@session.time_zone;
+--------------------+---------------------+
| @@global.time_zone | @@session.time_zone |
+--------------------+---------------------+
| SYSTEM             | SYSTEM              |
+--------------------+---------------------+
1 row in set (0.000 sec)

위와 같이 시간대가 "SYSTEM"으로 나오면, 기본적으로 "UTC" 시각을 기준으로 설정되어 있음을 나타냅니다.

그러면, 실제 한국시간 보다 9시간 느린 시간으로 표시되게 됩니다.

 

현재 운영중인 MariaDB의 시간대를 동적으로 변경하는 것은 "SET" 명령으로 다음과 같이 설정할 수 있습니다.

MariaDB [(none)]> SET GLOBAL time_zone='+09:00';
MariaDB [(none)]> SET time_zone = '+09:00';
MariaDB [(none)]> SELECT @@global.time_zone, @@session.time_zone;
+--------------------+---------------------+
| @@global.time_zone | @@session.time_zone |
+--------------------+---------------------+
| +09:00             | +09:00              |
+--------------------+---------------------+
1 row in set (0.000 sec)

위와 같이 "SET" 명령으로 시간대를 변경하면, 전체적으로 바로 잘 적용이 되나, "MariaDB" 서버를 재시작하면 원래대로 "SYSTEM" 설정으로 되돌아 갑니다.

 

이를 근본적으로 해결하기 위해서는 "my.cnf" 파일에 "default-time-zone"에 직접 시간대를 다음과 같이 설정해 주어야 합니다.

[mysqld]
bind-address=0.0.0.0
nskip-host-cache
skip-name-resolve
default-time-zone='+9:00'

위와 같이 설정을 완료한 이후에 "MariaDB" 서버를 재시작한 이후부터는 "my.cnf"에 적용한 시간대가 적용됩니다.

참고자료