3/22 TIL 오늘의 회고

송은혜·2022년 3월 22일
0

항해99 6기

목록 보기
18/34

💡새로 알게 된 것💡

timestamp 로컬 시간, mysql 시간 차이

미니 게시판에 JPA의 LocalDateTime을 사용해서 최종 수정시간이 찍힐 수 있도록 만들어서 배포까지 하였는데 , 알고보니 찍히는 시간이 현재시간과 다르게 나오는거다 .

구글링을 하며 찾아보니 코드를 추가해서 변경할 수 있는 방법이 여러가지 가 있었다.
그런데 내가 sql워크밴치에가서 확인을 해보니 시간이 아예 9시간 적게 찍혀있었다. 그래서 mysql쪽 문제라고 판단을 했고 구글링을 그런 쪽으로 했는데 , sql에 명령어 입력해서 시간 설정을 바꿔주면 된다고 나와있었다.

내 상황과 딱 맞는 것 같아서 따라해보았지만 제대로 되지 않았고(내가 뭘 잘 못했겠지..) 결국다른 코드로 상황을 해결 할 수 있었다.

해결할 수있었던 코드. application 파일에 해당 코드를 추가해주면 된다.
(도움주신 저희동기님 감사합니다🙏)

@PostConstruct
        public void started(){
            TimeZone.setDefault(TimeZone.getTimeZone("Asia/Seoul"));
        }

내가 해보았던 sql 해결 방식은 이러했다.

select now();

워크밴치에서 위 명령어로 현재 시간을 확인했다.
원래 시간보다 -9시간이 되어있었다.

SET GLOBAL time_zone='+09:00';
SET time_zone='+09:00';

위 명령어를 입력해서 시간대를 조정해주었다.

그리고 다시

select now();

sql 시간을 확인해보니 잘 맞았다.


그런데 sql을 재시작이 되면 설정했던게 사라진다고 해서 파일 설정을 바꿔줘야하는 부분이 있었는데

sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf

나는 해당 명령어를 입력해도 맞는 파일이 없다고 나왔다.
sql이 내 컴퓨터에 설치가 안되어 있는건가 ... ㅜㅜ
그래도 해결이 되어 다행이다.

이렇게 환경에 대한 오류나 문제가 나에게는 코드적인 문제보다 훨씬 어렵게 느껴진다..ㅠ 아마 cs적 지식이 부족해서겠지..
공부해나가야 할 것들이 많다 멀고도 먼 네트워크의 세계.

0개의 댓글