[mysql] 서버와 데이터베이스의 시간대 차이 문제 / UTC, serverTimezone

2025. 3. 25. 18:52·🦎 프로그래밍

 

rds 로 연결한 mysql 테이블의 데이터 값을 보다 보니

현재 시간과 다른 것을 발견했다.

이 부분!

 

이유를 알아보니 서버와 데이터베이스의 시간대(timezone)가 달랐다.

 


MySQL 서버의 시간대 확인

 
다음 sql 문을 통해 mysql 서버의 시간대를 확인할 수 있다.
 
SELECT @@global.time_zone, @@session.time_zone;

 

그럼 이런 결과를 받게 되었는데

@@global.time_zone@@session.time_zone
UTC UTC
한국(Seoul) 시간은 UTC+9이므로, 저장 시점보다 9시간 빠르게 저장되고 있던 것이다.

 


Spring Boot와 MySQL 시간대 맞추기

 

시간대를 맞추는 방법은 여러 가지가 있는데 우선

1️⃣ MySQL 시간대를 Asia/Seoul로 변경

 
SETGLOBAL time_zone ='Asia/Seoul'; SET SESSION time_zone ='Asia/Seoul';

 

(단, 이 방법은 my.cnf에서 default-time-zone='Asia/Seoul' 설정해야 영구적으로 적용된다.)

 

2️⃣ Spring Boot의 application.yml에서 UTC 설정 확인

spring:
  datasource:
    url: jdbc:mysql://{db}:3306/{db}?serverTimezone=Asia/Seoul&characterEncoding=UTF-8

 

application.yml 파일에서 다음 url 부분을 

serverTimezone=Asia/Seoul을 명시적으로 설정해야 MySQL이 한국 시간 기준으로 저장된다.

  • 현재 설정이 serverTimezone=UTC라면, 데이터가 UTC로 저장되면서 +9시간 차이 발생된다!

 

나는 2번 방법을 이용했고 시간대 문제를 해결할 수 있었다! 

'🦎 프로그래밍' 카테고리의 다른 글

[AWS EC2] nohup 사용법 / 백그라운드 실행  (2) 2025.03.24
[IntelliJ] 인텔리제이 No python interpreter configured for the module 오류 해결  (1) 2025.03.10
'🦎 프로그래밍' 카테고리의 다른 글
  • [AWS EC2] nohup 사용법 / 백그라운드 실행
  • [IntelliJ] 인텔리제이 No python interpreter configured for the module 오류 해결
cosmo225
cosmo225
개발자로 향하는 길 👽
  • cosmo225
    to cosmo!
    cosmo225
  • 전체
    오늘
    어제
    • 분류 전체보기 (19)
      • 🍏 Spring Boot (12)
      • 🦖 Git (3)
      • 🦎 프로그래밍 (3)
      • 🦕 etc (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    GIT
    github
    firebase
    깃허브
    스프링부트
    Back-end
    springboot
    프로그래밍
    google
    배포
    oauth2
    Programming
    Spring
    개발
    백엔드
    java
    파이어베이스
    스프링
    구글로그인
    데이터베이스
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
cosmo225
[mysql] 서버와 데이터베이스의 시간대 차이 문제 / UTC, serverTimezone
상단으로

티스토리툴바