데이터베이스/SQL

MySQL(MariaDB) 서버 타임존 변경 및 확인

MySQL(MariaDB) 서버 타임존 변경 및 확인


MySQL 또는 MariaDB를 사용하여 데이터를 삽입할 때, 타임스탬프(TimeStamp)의 값이 엉뚱하게 입력되는 경우가 생길 때가 있습니다.

데이터 상의 시간으로만 보았을 때는 문제가 없어 보이지만, 사실 저 데이터가 삽입된 실제 시간이 위 시간들과 몇시간 정도 차이가 나고 있었습니다.

이는 현재 데이터베이스의 시간대가 한국 시간대와 다르게 설정되어 있어 시간 상의 오류가 생긴 것처럼 보이는 것입니다.

 

데이터베이스 서버 타임존 확인

다음 SQL 쿼리문을 사용하여 서버 변수를 통한 현재 서버의 타임존을 확인할 수 있습니다.

  • @@global.time_zone : 데이터베이스 서버의 타임존
  • @@session.time_zone : 현재 연결된 세션의 타임존
SELECT @@global.time_zone, @@session.time_zone;

쿼리를 실행하면 현재 시간대와 세션의 시간대가 UTC임을 알 수 있습니다.

 

 

데이터베이스 서버 타임존 변경

서버의 타임존 변경을 위해서는 MySQL/MariaDB 데이터베이스 설정 파일을 열어주어야 합니다. 이는 서버상에서 작업하는 내용이므로 서버 원격 접속 권한을 가지고 있어야 합니다.

리눅스 OS 기준 일반적으로 /etc/my.cnf 파일이나 /etc/my.cnf.d/server.cnf 파일을 사용합니다. 이 파일을 열어 [mysqld] 항목을 찾아 아래에 다음과 같이 입력합니다.

[mysqld]
default-time-zone='+9:00'

default-time-zone+9시간이므로 이는 KST 시간대인 대한민국의 시간을 표시합니다. 여기서 주의할 점은 09:00이나 +9만 입력해서는 안됩니다.

다시 UTC 시간대로 되돌리고 싶다면 다음과 같이 사용합니다.

  • default-time-zone='+0:00'
  • default-time-zone='-0:00'

 

설정 값을 변경한 후 MySQL 또는 MariaDB 서비스를 재시작해야합니다. (서비스 이름이 간혹 mysqld 가 아닌 mysqlmysql80 등인 경우가 있습니다.)

[root@localhost ~]# service mysqld restart

systemd 환경의 OS에서는 다음 명령어도 사용 가능합니다.

[root@localhost ~]# systemctl restart mysqld

 

JooTC

안녕하세요. 테크놀로지에 관심이 많은 블로거입니다.

View Comments

Recent Posts

Zalgo 텍스트와 이를 방지하는 방법

인터넷 커뮤니티 사이트에서 게시글이나 댓글에 간혹 장난을 목적으로 작성된 특이한 글자를 볼 수 있습니다. 위…

1개월 ago

리눅스 kill, killall 명령어 – 특정 프로세스 종료하기

리눅스 명령어 - kill, killall 리눅스 kill 명령어는 특정 프로세스를 종료해주는 명령어입니다. 백그라운드에서 실행되고 있는…

1개월 ago

JavaScript typeof null이 ‘object’인 이유

JavaScript는 역사가 긴 스크립트 프로그래밍 언어입니다. 세월이 흐르면서 많은 자바스크립트 표준이 만들어졌고, 현재는 많은 문법적…

1개월 ago

Mocha Error: Resolution method is overspecified. 해결 방법

NodeJS 테스트 프레임워크인 Mocha는 비동기 테스트를 지원합니다. 간혹 특정 테스트 스크립트를 작성하고 실행하면 아래와 같이…

1개월 ago

윈도우 11 설치 시 Microsoft 계정 로그인 없이 로컬 계정 만들기

언제부턴가 윈도우 11을 처음 설치할 때 마이크로소프트(Microsoft) 계정 로그인을 강제로 요구하게 되었습니다. 물론 마이크로소프트 계정이…

6개월 ago

에어팟 프로 2 케이스 스피커 소리를 완전히 끄는 방법

애플 에어팟 프로 2 (AirPods Pro 2) 케이스에는 스피커가 내장되어 있습니다. 그런데 간혹 아무 것도…

9개월 ago