엠마의 개발공부일지

JDBC프로그래밍을 하기위해선 "타임존"설정이 필수! 본문

Stack/JSP & Servlet

JDBC프로그래밍을 하기위해선 "타임존"설정이 필수!

Emmababy 2020. 11. 24. 19:03
728x90

 

오늘 하루를 갈아내서 알게된 지식을 기록한다.................(이게 8시간이나 쓸 일이냐고....ㅠㅠ)

* 타임존의 필요성 : 전세계의 시간이 각각 다르기때문에, 한국시간에 맞는 시간을 정해두기 위해 초기에 설정한다

   (datetime과 같이 현재시간을 표시해야하는 메서드를 사용할 경우에, 한국시간을 끌어다 쓰기위함)

* 타임존을 설정하지않으면 JDBC - DB(Mysql, mariadb, oracle 등)연결이 안되고 아래와같은 오류가 뜬다

(The server time zone value 'KST' is unrecognized or represents more than one time zone. You must configure  either the server or JDBC driver (via the serverTimezone configuration property) to use a more specifc

time zone value if you want to utilize time zone support.

 => mysql-connector-java버전 5.1이후의 버전은 KST타임존을 인식못하기 때문에 뜨는오류

 

에러났던 코드

1. 현재 내pc의 타임존상태먼저 체크한다

  DB에 아래와 같이 작성하면 오른쪽과 같이 뜬다 (SYSTEM으로 표시된것은 별도의 타임존설정이 안되있다는 뜻)

  코드 :  select @@global.time_zone, @@session.time_zone;

2. default-time-zone변경한다

  => 디폴트값을 변경하기위해서는  my.ini파일을 찾아서 , 그 파일에 한줄을 추가해줘야하는데

       일단 my.ini 파일을 찾아야한다.

1. mysql 8.0 command line client를 켜고
2. 오른쪽의 코드를 작성    코드 :  SHOW VARIABLES WHERE Variable_Name LIKE "%dir";
3. 아래 커맨드창에 노란색 value값에 나온경로를 복사하여 검색하면 해당파일이 나온다.
(참고 : 경로를 복사하지않고 하나하나 찾아들어가는건 안됨. ProgramData파일이 눈에 안보이기때문)

 

 

경로를 하나하나 찾아갈때  : program data파일 없음 경로를 복사해서 들어갈때 : program data파일 있음

 

3. my.ini파일에 들어가서 

파일위치

한줄추가한다    코드 :  default-time-zone='+9:00'; 

(추가위치는 [mysqld]아래, 스크롤 위치 참고)

 

저장할때는 UTF-8이 아닌 ANSI로 저장!

my파일에 한줄 추가한다.

★ 만약 저장했을때 수정권한이 없어서 수정안된다는 팝업이 뜨는경우는 아래와 같이 실행

☞ 메모장을 관리자권한으로 연다

☞ my파일을 따로 바탕화면에 복사한다음, 그 파일을 불러와서 고치고 저장
(그래도 안된다면... 권한을 바꿔주는 과정을 거쳐야함...이과정에서 3시간넘게 할애함 ㅠㅠ
 이 과정은 구글링하길바람)

 

 

 

4. 연결하고자하는 URL에 타임존관련 내용을 추가

(나는 이클립스에서 작업중이었으므로 DataAccessObject안에서 설정해줬다)

기존 DB URL뒤에 물음표를 포함해서 타임존관련내용을 추가한다 

코드 :  ?serverTimezone=Asia/Seoul 추가

여기까지 하면 웬만해선 DB와 연결되는것을 확인할 수 있다

 

 

 

 

 

728x90

'Stack > JSP & Servlet' 카테고리의 다른 글

타임존 설정하는 2가지 방법  (0) 2020.11.25
mysql서버구동이 안될 때  (2) 2020.11.25
JSP로 JDBC프로그래밍 하기  (0) 2020.11.23
Servlet용어정리  (0) 2020.11.04
서블릿 한장정리  (0) 2020.11.02
Comments