안녕하세요. 그린주입니다 ๑'ٮ'๑
경험이 많이 부족하지만 최선을 다해 적어보겠습니다!
개요
MySQL를 사용하여 데이터를 삽입할 때, datetime의 값이 엉뚱하게 들어가게 되는 경우가 있습니다.
위의 사진은 데이터상의 시간으로 보았을 때는 문제없어 보이지만,
사실 저 데이터가 삽입된 실제 시간이 위 시간들과 9시간 정도 차이가 나고 있었습니다.
이는 현재 데이터베이스의 시간대가 한국 시간대와 다르게 설정되어 있어 시간 상의 오류가 생긴 것처럼 보이는 것입니다. *시간 차이는 time_zone 설정에 따라 다를 수 있습니다.
이번 글에서는 AWS RDS MySQL time_zone 시간 확인 & 변경 방법을 공유하고자 합니다!
참고로 Amazon RDS 데이터베이스와 파라미터 그룹이 이미 생성되어있다는 가정하에 시작합니다.
목차
time_zone 확인
time_zone 변경
MySQL time_zone 변경
time_zone 확인
다음 SQL 쿼리문을 사용하여 서버 변수를 통한 현재 서버의 타임존을 확인해보겠습니다.
select @@global.time_zone, @@session.time_zone,@@system_time_zone;
이렇게 나온다면 한국 시간대가 적용되지 않아 MySQL에 한국 시간대를 입력하면 원하는 시간보다 -09:00으로 나오게 됩니다.
Timezone의 값은 여러 가지 포맷으로 사용할 수 있으며 대소문자 구분이 없습니다.
· SYSTEM은 MySQL이 시스템의 타임존과 동일한 설정을 사용합니다.
· ‘+9:00’ 또는 ‘-6:00’과 같이 GTM/UTC 기준 Offset 사용합니다.
· US/Eastern, Asia/Seoul과 같은 named timezone 사용합니다.
실제로 현재 시간을 확인해 보면 현재 시간보다 -09:00 된 시간이 나옵니다.
select now();
time_zone 변경
다음 SQL 쿼리문을 사용하여 현재 서버의 타임존을 변경해 보겠습니다.
Asia/Seoul 또는 +09:00 둘 다 가능합니다. 'Asia/Seoul'로 입력했을 때 에러가 난다면 +09:00로 입력하시길 바랍니다.
SET GLOBAL time_zone='+09:00';
SET time_zone='+09:00';
or
SET GLOBAL time_zone='Asia/Seoul';
SET time_zone='Asia/Seoul';
실행 후 다시 타임존을 확인해보면 잘 변경되어 있는 걸 볼 수 있습니다.
현재 시간도 확인해 보면 현재 시간과 똑같이 나오는 걸 볼 수 있습니다.
select now();
이렇게 SET을 통해 서버 타임존 변경을 해봤는데요.
이 방법은 일회성으로 MySQL를 재시작해야 하는 경우 위 설정이 초기화됩니다.
재시작하더라도 설정이 남아 있으려면 MySQL 시스템 time_zone 시간대를 변경해줘야 합니다.
MySQL time_zone 변경
AWS > RDS > 파라미터 그룹으로 들어갑니다.
파라미터 그룹이 없다면, 데이터베이스의 엔진 버전을 참고하여 파라미터 그룹을 생성해주세요.
updatetimezone이라는 파라미터 그룹이 생성되어있습니다.
이름을 클릭해서 세부 정보로 들어갑니다.
세부 정보 아래 파라미터 부분에 time_zone을 검색한 뒤 수정으로 넘어갑니다.
수정 먼저 들어가서 검색해도 됩니다.
빈칸에 Asia/Seoul를 입력하고 계속 버튼을 누릅니다.
위처럼 time_zone 값이 Asia/Seoul로 변경된 것을 확인할 수 있습니다.
이제 데이터베이스 인스턴스에 해당 파라미터를 적용시켜 보겠습니다.
적용할 데이터베이스 선택 후 수정 버튼을 눌러줍니다.
추가 구성 > 데이터베이스 옵션 > DB 클러스터 파라미터 그룹에서
파라미터 그룹 명(updatetimezone)을 입력합니다.
이제 인스턴스를 재부팅해주면 time_zone이 적용됩니다.
시간과 설정값이 잘 적용되어있는지 확인해봅시다.
위의 사진처럼 현재 시간으로 잘 나오고 타임존 설정도 잘 바뀌었다면
성공!!
마무리
이렇게 AWS RDS MySQL time_zone 시간 확인 & 변경하는 방법을 모두 알려드렸습니다!
다들 변경되었을까요?? 끝까지 파이팅입니다!
긴 글 봐주셔서 감사합니다!
오늘도 행복한 하루 보내세요 ✿'◡'✿
참고
https://velog.io/@taelee/mysql에서-9시간-차이날때GCP
https://jootc.com/p/201905052779
https://tlo-developer.tistory.com/78