Mysql Server Timezone 설정 방법
필자는 Mysql 5.7로 진행하였다.(5.7 이하의 버전이나 이후의 버전도 레퍼런스 확인 결과 비슷함)
아래의 명령어로 현재 타임존 확인가능
SELECT @@GLOBAL.time_zone, @@SESSION.time_zone;
위와 같이 출력되면 기본 세팅인 것(As the value 'SYSTEM', indicating that the server time zone is the same as the system time zone. - 시스템 시간대를 따라간다고 한다.)
If set to SYSTEM, every MySQL function call that requires a time zone calculation makes a system library call to determine the current system time zone. This call may be protected by a global mutex, resulting in contention.
SYSTEM으로 설정되어 있으면 시스템 라이브러리 호출을 수행하는데, global mutex에 의해 보호된다고함 (global mutex는 동기화 관련 단어임)
이제 타임존을 세팅해보자. 아래의 명령어 실행
set global time_zone = 'Asia/Seoul';
set time_zone = 'Asia/Seoul';
SQL Error [1298] [HY000]: Unknown or incorrect time zone: 'Asia/Seoul'
위와 같은 에러가 나오는 경우
dev.mysql.com/downloads/timezones.html 에서 버전에 맞는 timezone 정보파일을 받는다. 5.7 이후는 sql로 되어있다.
그리고 해당 파일을 source 명령어로 실행하든, 내용을 직접 복사하여 실행한다.
그리고 다시 위의 타임존 세팅 명령어 실행시 정상 동작한다.
DB 서버를 재시작하면 해당 설정이 날아간다.
그러므로 아래의 설정을 적용해준다. 아래 설정시 위의 set 명령어는 해줄 필요 없는듯
my.ini 열기 (mysql server 설정파일 위치 window기준: c:\ProgramData\MySQL\MySQL Server 5.7\my.ini)
[mysqld]
default-time-zone='Asia/Seoul'
mysqld 단락에 위의 코드를 추가하고 재시작
참고 : dev.mysql.com/doc/refman/8.0/en/time-zone-support.html
dev.mysql.com/downloads/timezones.html
'프로그래밍' 카테고리의 다른 글
헥사고날 아키텍쳐 - 애플리케이션 헥사곤 (0) | 2024.08.04 |
---|---|
헥사고날 아키텍쳐 - 도메인 헥사곤 (0) | 2024.08.04 |
헥사고날 아키텍쳐 (0) | 2024.08.04 |
Git reset hard 취소하기, 되돌리기, 복원하기 (0) | 2021.05.04 |
Http Response Code에 대한 간단한 정리 (3) | 2020.02.21 |