2015년 3월 24일 화요일

아마존 웹 서비스(AWS) RDS MySQL UTF-8 인코딩 설정

어딜가나 인코딩이 문제를 많이 일으킨다.

DB, 문자열, 서버, HTTP 타입 등등.. 

인코딩이 맞지 않아서 문자열이 깨지는 경우가 많이 발생한다.

UTF-8 을 표준으로 책정한 만큼, Default 인코딩이 UTF-8 로 되어있으면 좋겠다.

아쉽게도 MySQL 은 Default 인코딩이 UTF-8이 아니다. ("latin-1" 이다.)

그래서 MySQL 설치 후에 인코딩을 변경하지 않고 한글을 입력하려고 하면 이상한 문자로 들어가는 것을 볼 수 있을 것이다.

APM으로 MySQL 을 설치했을 때는 , mysql/my.cnf 파일에서 설정값을 넣어주면 된다. (아래 포스팅 확인)



하지만 RDS로 MySQL을 구축했을 때는 my.cnf 파일에 접근할 수 없다.



RDS 에서는 DB의 파라미터들을 셋팅할 수 있는 메뉴를 제공한다.

RDS에 들어가서 왼쪽 메뉴를 보면 Parameter Groups 가 있다. 클릭


Parameter Groups에 들어가면 현재의 Parameter Group의 목록이 나오고 특별한 설정이 없다면 default 가 있을 것이다.

Create DB Parameter Group 버튼 클릭


DB Parameter Group Family : MySQL 버전을 선택한다. 자신의 DB Instance 의 버전과 일치해야 한다.

DB Parameter Group Name : 파라미터 그룹의 이름을 지정

DB Parameter Group Description : 부가 설명을 적으면 된다.

Yes, Create 클릭


Parameter Group이 하나 생성되었다.

이제 파라미터들을 수정해보자

Edit Parameters 버튼 클릭


MySQL에서 설정할 수 있는 파라미터들이 나온다.

여기서 원하는 항목의 값을 설정하면 된다.

우리는 문자열 인코딩을 UTF8 로 바꿔야한다.

조금 아래로 내려보자


character_set 에 관련한 옵션들이 처음에는 모두 <engine-default> 로 되어있다.

화면과 같이 모두 utf8 로 바꾸고 위에 Save Changes 버튼을 클릭한다.



인스턴스의 내용을 확인하자.

Parameter Group 을 보면 default로 되어 있을 것이다.

이것을 앞에서 생성한 Parameter Group으로 변경해보겠다.

아래 Instance Actions 버튼을 클릭하고 "Modify" 를 클릭하자.



인스턴스 수정 화면이다.

Parameter Group에서 앞에서 만든 파라미터를 선택하고 Continue를 클릭한다.

자동으로 인스턴스에 변경사항이 반영되지만, 깔끔하게 재부팅 해준다.

인코딩 파라미터 그룹 설정 끝

출처:http://hyeonstorage.tistory.com/trackback/276

댓글 없음:

댓글 쓰기