my.ini 파일에 default-time-zone=Asia/Seoul
을 기입하였는데 반응이 없었다. 찾아 보니 timezone_leaps.sql 패키지가 설치되어 있지 않으면 그렇다고 한다. 패키지가 있는지 없는지 설치 전 미리 확인하기 위한 과정은 다음과 같다.
select @@global.time_zone, @@session.time_zone;
먼저 MySQL Workbench에 위 sql문을 입력한다.
둘 다 디폴트 값인 SYSTEM으로 나올 것이다. 나의 경우에도 그랬다.
그렇다면 아래 sql문을 입력 후 실행해본다.
SET global.time_zone = 'Asia/Seoul';
SET time_zone = 'Asia/Seoul';
그럼 패키지가 없는 경우 이미지와 같이 에러 코드 1298 'Unknown or incorrect time zone : 'Asia/Seoul''이 뜨는 것을 확인할 수 있을 것이다.
POSIX와 NON POSIX 중 유닉스 계열이라면 전자, 윈도우 계열이라면 후자를 받으면 된다.
나의 경우 윈도우 유저라 timezone_2022a_leaps_sql.zip - Non POSIX with leap seconds를 받았다.
1. cd (mysql 서버 설치 경로)\bin
2. mysql -uroot -p
3. Enter password : (패스워드 입력)
mysql>
이라고 뜰 것이다.이때, 아래와 같은 명령어를 입력해 준다.
1. show databases;
2. use mysql;
3. Database changed라는 문구가 확인 되면,
source (timezone 파일 설치 경로)\timezone_leaps.sql;
다른 분들은 바로 use mysql;
해도 되었는데, 나는 그렇게 하고 source ~~
를 입력하니 실행이 되지 않았다. 그래서 show databases;
먼저 하고, use mysql;
을 실행한 다음 소스 추가를 해주었다.
my.ini
설정 파일을 켠 다음, 파일에 하기 코드를 추가한다.default-time-zone=Asia/Seoul
그리고 mysql을 재시작해준다.
(나의 경우, Window+R(실행 창) → services.msc (서비스 열기)로 접속했다.)
마지막으로 다시 Workbench로 돌아와 아래 sql문을 실행해 보면,
select @@global.time_zone, @@session.time_zone;
SYSTEM으로 확인되었던 게 Asia/Seoul로 알맞게 바뀐 것을 확인할 수 있다.