반응형
java에서 찍어보면 아래와 같이 현재 시간이 찍힙니다.
expires_at : 2020-12-19 20:44:13
issued_at : 2020-12-19 20:44:14
//Java에서 찍어봤을때나오는데이터
{
"expires_at": {
"date": {
"year": 2020,
"month": 12,
"day": 19
},
"time": {
"hour": 20,
"minute": 44,
"second": 13,
"nano": 0
}
},
"issued_at": {
"date": {
"year": 2020,
"month": 12,
"day": 19
},
"time": {
"hour": 18,
"minute": 44,
"second": 14,
"nano": 0
}
}
}
하지만 DB에 들어간 데이터는 9시간 빠르게 들어가있습니다.
expires_at : 2020-12-19 11:44:13
issued_at : 2020-12-19 09:44:14
이런차이는 프로그램에 오류를 만들어냅니다.
위의 데이터는 oAuth2의 토큰 발행 및 만료 시간인데 조회 할때마다 만료된걸로 나와서 발급된 토큰을 사용할 수가 없습니다.
해결책
- application.yml에 datasource 하위에 url에 "&serverTimezone=UTC"에서 "&serverTimezone=Asia/Seoul"로 변경하면 됩니다.
- serverTimezone=UTC로 설정되다보니 영국 그리니치의 표준시로 저장된것입니다.
- 자바가 아닌 다른 언어세서도 datasource를 관리하는 부분에 해당 설정이 있으므로 살펴보시면 좋을거 같습니다.
//기존
datasource:
type: com.zaxxer.hikari.HikariDataSource
url: jdbc:mysql://localhost:3306/integrated_test_app?characterEncoding=UTF-8&serverTimezone=UTC
username: XXXXXX
password: XXXXXX
//serverTimezone 수정
datasource:
type: com.zaxxer.hikari.HikariDataSource
url: jdbc:mysql://localhost:3306/integrated_test_app?characterEncoding=UTF-8&serverTimezone=Asia/Seoul
username: XXXXXX
password: XXXXXX
반응형
'[DataBase] > MySql' 카테고리의 다른 글
Unblock with 'mysqladmin flush-hosts' (0) | 2018.02.19 |
---|---|
mysql에서 테이블 레코드수, 용량 확인 (0) | 2017.06.02 |
서브쿼리 소수점 문제 발견 (0) | 2017.02.22 |
mysql DB 마이그시 한글깨짐 (0) | 2017.01.10 |
mysql replication 에서 동기화 Error - 1062 (0) | 2017.01.06 |
댓글