AWS RDS MySQL 서버 시간 확인 및 변경 ( AWS / RDS / MySQL )
🌜 Server/AWS & Linux

AWS RDS MySQL 서버 시간 확인 및 변경 ( AWS / RDS / MySQL )

728x90

안녕하세요. 그린주입니다 ๑'ٮ'๑
경험이 많이 부족하지만 최선을 다해 적어보겠습니다!

 

개요

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://brtech.tistory.com/95

https://tlo-developer.tistory.com/78

 


728x90
728x90