2023. 12. 26. 12:05ㆍ기술 창고/DataBase
MySQL을 사용하여 데이터를 input 할 때 datetime이나 현재 데이터를 넣은 시간을 기록으로 DB 상에 남겨 놓을 때 현재 아시아 표준 시간이 아닌 외국 표준 시간으로 반영되어 들어가는 경우가 존재합니다.
이를 아시아 표준 시간으로 적용 시켜야 이후 프로젝트를 운용할 때 이슈가 발생하지 않을 것입니다.
오늘은 간단하게 아시아 표준 시간으로 적용 시키는 방법을 정리해보겠습니다.
(1) DB 상에서 현 Time Zone 확인
우선 MySQL 워크벤치에서 현재 server time zone이 어떻게 설정되어있는지 확인해줍니다.
방법은 대표적으로 두 가지가 있습니다.
첫 번째는, Server 탭의 Status and System Variables 항목을 선택하고 System Variable 메뉴에 Time_zone을 입력하여 나온 시간 설정 값들을 확인해줍니다.
위의 이미지를 확인해보았을 때, system_time_zone 은 KST, time_zone 은 SYSTEM 으로 나오고 있는데, 이 말인 즉슨 기본 시간 설정을 표준 시간으로 설정해주지 않았다는 것입니다.
다시 한번 select @@global.time_zone, @@session.time_zone; 명령어를 입력하여 time_zone을 확인해줍니다.
마찬가지로 SYSTEM 이 나오면서 표준 시간으로 설정되지 않았음을 알 수 있습니다.
(2) DB 커넥션 url 파라미터 설정
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://{데이터베이스 ip}:3306/{데이터베이스 명}?serverTimezone=UTC&characterEncoding=UTF-8
spring.datasource.username={데이터베이스 계정 ID}
spring.datasource.password={데이터베이스 계정 비밀번호}
Spring 에서 MySQL 설정을 해준 application.properties 파일에서 jdbc 설정값의 url 부분에 serverTimezone 파라미터를 추가하고, UTC로 지정해주면 표준 시간대로 적용되게 됩니다.
'기술 창고 > DataBase' 카테고리의 다른 글
[Redis] Docker 환경에서 Redis 설치 - (로컬) (0) | 2024.04.15 |
---|---|
[MySQL] Spring Boot 에서 MySql의 랜덤 함수 사용하기 (QueryDSL) (0) | 2024.01.30 |
[Redis] EC2 환경에 Redis 설치 (0) | 2023.05.24 |
[Oracle] 오라클 XE 설치 및 계정 생성 (0) | 2023.05.15 |
[DB] H2 데이터베이스 (0) | 2023.02.23 |