타임존, 인코딩 설정

oyeon·2021년 4월 28일
0

Server

목록 보기
13/16

reference
https://luminitworld.tistory.com/94?category=975147
https://www.lesstif.com/java/java-+-mysql-+-utf8mb4-emoji-51283094.html
https://sshkim.tistory.com/128

타임존, 인코딩 설정

파라미터 그룹 추가

RDS의 타임존, 인코딩 설정을 위해 파라미터 그룹으로 들어가면 기본 default 파라미터가 존재한다.

하지만, default 파라미터 그룹은 수정이 불가능하기 때문에 새로운 그룹을 생성한다.

타임존 설정

생성한 파라미터 그룹 링크로 들어가 검색창에 time_zone을 검색하자. time_zone을 보면 세계 각국의 time_zone이 존재한다. 여기서 Asia/Seoul 을 선택한다. 이후 변경 사항을 저장하면 타임존 설정이 완료된다.

인코딩 설정

인코딩 설정을 위해 파라미터 그룹 링크에서 검색창에 character_set을 검색한다. 한글 데이터가 깨지지 않고 출력되도록 utf-8로 설정해야 한다. utf-8로 설정해도 되지만 이모지를 사용하기 위해 utf8mb4로 설정했다.

MySQL의 utf-8은 3byte로 표현되는 범위의 character만 입력할 수 있지만, 이모지 처럼 4byte로 표현되는 문자를 처리하지 못한다. 반면 utf8mb4는 내부적으로 한 문자를 표현하는데 4바이트를 사용한다.

이모지는 매우 빈번하게 사용되기 때문에 utf8mb4로 인코딩 설정을 하자.

MySQL이 최신버전일 때 권장하는 character_set은 utf8mb4이고, collation은 utf8mb4_unicode_ci 라고 한다. 참고로 collation은 정렬 방식이다.

charcter_set

아래와 같이 charcter_set* 모든 값을 utf8mb4로 설정한다.

collation

아래와 같이 collation* 모든 값을 utf8mb4_unicode_ci로 변경한다.

파라미터 그룹 설정

데이터베이스 옵션 부분의 DB 파라미터 그룹을 이전에 생성한 그룹으로 변경한다.

즉시 적용으로 DB 인스턴스 수정을 한다.

수정사항을 적용시키기 위해 재부팅 한다.

타임존, 인코딩 확인

타임존

기존 결과

변경 결과

인코딩

테스트 데이터 추가 및 테스트

기존 결과

변경 결과

collation_database가 제대로 변경되지 않아서 다음 쿼리문을 통해 데이터베이스에 대해 직접 설정했다.

ALTER DATABASE springDB
CHARACTER SET = 'utf8mb4'
COLLATE = 'utf8mb4_unicode_ci';

EC2에서 RDS 접근

기존에 만든 EC2 환경에서 구축한 RDS에 접근했다. 호스트주소는 RDS의 엔드포인트를 넣어주면 된다.

~$ mysql -u사용자명 -p비밀번호 -h호스트주소
profile
Enjoy to study

0개의 댓글