Aws RDS 기준 시간 변경하기

ESH'S VELOG·2023년 8월 9일
0
post-thumbnail

문제 : date의 data type을 timestamp로 하고 싶고 사용자에게 RDMS 기준으로 보여주고 싶음

시도해 본 것
1) typeorm의 설정 중 내 RDS와 connection 시 time zone을 Asia/Seoul로 설정

createTypeOrmOptions(): TypeOrmModuleOptions {
    return {
      type: 'mysql',
      host: this.configService.get<string>('DATABASE_HOST'),
      port: this.configService.get<number>('DATABASE_PORT'),
      username: this.configService.get<string>('DATABASE_USERNAME'),
      password: this.configService.get<string>('DATABASE_PASSWORD'),
      database: this.configService.get<string>('DATABASE_NAME'),
      entities: [User, Board, Comment, List, Waiting, Member, Card],
      synchronize: this.configService.get<boolean>('DATABASE_SYNCHRONIZE'),
      timezone: 'Asia/Seoul',
    };
  }

=> 실패했다. 여전히 select * from 테이블이름을 쳤을 때 UTC 기준을 조회해준다.
그렇다면 연결해주는 서버단이 아닌 데이터베이스 자체를 바꿔주는 것이 어떨까?

2) AWS RDS 시간을 변경해주기
데이터베이스 설정을 변경하기 위해서는 MySQL자체 설정를 변경해야 한다.

나는 현재 MySql DB를 aws에서 빌려서 사용하고 있기때문에 AWS사이트의 RDS를 들어가서 변경하도록 하겠다.

파라미터 그룹 => 파라미터 그룹 생성 =>
파라미터 그룹 패밀리: mysql8.0,(변경하려는 DB의 옵션에 맞춰서 설정한다)
그룹 이름: DB Parameter Group,
그룹 이름: 자유(한글은 안됨)
설명 : 되도록 영어로 => 생성 클릭
=> 데이터베이스
=> 바꾸려는 데이터베이스 클릭
=> 수정 클릭
=> 쭈욱 내리다보면 추가 구성의 데이터베이스 옵션에 간다
=> DB 파라미터 그룹 => 계속 => 적용
=> 다시 데이터베이스로 가서 변경한 내용을 가진 DB를 재부팅을 한다.




SQL 편집기로 가서 select Now()를 하면 연결된 DB의 현재 시간을 알 수 있다.

잘 바뀐것을 확인하였고 데이터 생성시 보이는 값도 DB기준 시간으로 잘 나오는 것을 확인하였다.

profile
Backend Developer - Typescript, Javascript 를 공부합니다.

1개의 댓글

comment-user-thumbnail
2023년 8월 9일

정리가 잘 된 글이네요. 도움이 됐습니다.

답글 달기