[MySQL] 데이터베이스 시간 변경하기
0. 시작하며
서버 TimeZone이 설정되어있지 않거나, 실제로 서버가 외국에 있다면 데이터베이스(mysql)에 시간 또한 한국이 아닐 것이다. TimeZone이 다른 경우 불편한 점이 생기는데 대표적으로 '데이터 갱신 시간 컬럼(항목)'에 시간대가 현재와 달라 읽는데 혼란을 줄 수 있다.
이 글에서는 두가지 방법에 대해 다뤄볼 것이다. 첫번째로는 Mysql 쿼리문을 통해 TimeZone 설정을 변경하는 방법, 두번째는 mysql 설정파일 변경을 통하여 시간대를 변경하는 방법이다.
[진행환경]
서버 : CentOS 8 / GCE (미국)
DB : mysql/maraiaDB
1. MYSQL 쿼리문을 통해 변경하는 방법
주의 : 해당 방법은 MYSQLD 서비스 재시작마다 적용해야하는 문제가 있음.
해당 방법에 장점은 현재 운영중인 서버를 재시작하지 않아도 적용할 수 있다는 점에 있습니다.
1.1 현재시간 및 TimeZone 확인
아래 쿼리문을 통해 현재시간 및 설정되어있는 TimeZone을 확인한다. 저의 경우 3월15일 오전7시4분이며, UTC로 설정되어있는 것을 확인하였다.

1.2 TimeZone 변경
아래 쿼리문을 통해 TimeZone을 서울 시간대로 변경한다. Asia/Seoul로 지정하는 방법도 있긴 하지만 "(1298): Unknown or incorrect time zone: 'asia/seoul'" 에러가 발생하며 추가적인 작업이 필요해져서 저는 아래와 같은 방법으로 진행하였다.

참고로 한국표준시는 UTC보다 9시간 빠르다.
1.3 적용 확인
SELECT NOW()를 입력하여 현재시간이 한국시간이 맞는지 확인한다.


ps. 서비스 재시작 이후에는 원래대로 돌아간다...
2. MYSQL 설정파일 변경
2.1 my.cnf 파일 수정
mysql 설정파일인 my.cnf 파일에 아래 사진의 12, 13번째 줄을 추가하여 한국표준시로 변경할 수 있다.

2.2 MYSQL 서비스 재시작
적용이후 mysql 서비스를 재시작한다.
2.3 적용 확인
잘 적용되었는지 mysql에서 확인한다.
