DB에 현재 시각을 저장할 때, now()를 사용하는 경우가 많은데 타임존을 설정해주지 않으면 UTF 시각으로 저장이 된다.
오늘은 서버 타임존을 +9:00(한국)으로 변경해보자.
DB 서버 타임존 확인
SELECT @@global.time_zone, @@session.time_zone;
위 SQL 구문을 확인하면 현재 서버의 타임존을 확인할 수 있다.
아무 설정을 하지 않았으면, UTF 또는 System이라고 나온다.
DB 서버 타임존 변경
인터넷에서 찾아봤을 때는 /etc/my.cnf 또는 /etc/my.cnf.d/server.cnf의 파일을 열어서 수정해야한다고 나와있었는데, 나의 경우는 /etc/mysql/mysql.conf.d/mysqld.cnf였다. 서버마다 경로가 조금씩 다르니 잘 찾아보자.
[mysqld]
default-time-zone='+9:00'
파일을 열어서 [mysqld] 아래에 타임존을 설정해주면 된다.
꼭 '+9:00'라고 정확하게 기입하자!
파일 수정 후, mysql을 재실행해준다.
(리눅스 nginx 서버의 경우)
sudo service mysql restart
(리눅스 Apache 서버의 경우)
sudo systemctl restart mysql
// 서비스 이름이 mysql이 아닌, mysqld 또는 mysql80인 경우가 있다
다시 서버 타임존을 확인하면 아래와 같이 나온다.