AWS RDS MariaDB 한글 깨짐 현상 해결(character_set, collation)
이번 글에서는 AWS RDS에 구축한 MariaDB에 데이터 입력 시 한글 깨짐 현상이 발생하는 문제를 해결하는 법에 대해 알아볼 것이다.
작업을 진행한 MariaDB는 10.2버전이다.
1. 왜 AWS RDS로 MariaDB를 생성하면 한글 깨짐현상이 발생할까?
AWS RDS에서는 DB를 생성할 때 속성값으로 파라미터 그룹을 지정하게 되어 있다. 파라미터 그룹은 간단히 말해서 해당 DB의 속성값이라고 보면 되는데 이 속성값에 character-set도 있다. 그런데 파라미터 그룹을 별도로 지정하지 않으면 기본 파라미터 그룹으로 설정되는데, 이 기본 파라미터 그룹의 character-set이 utf8이 아니기 때문에 한글이 깨지는 현상이 발생하게 된다.
그렇기 때문에 RDS로 DB를 생성할 때 character-set이 utf8인 파라미터 그룹을 생성한 후 생성하는 DB의 속성값으로 등록해야 한다.
2. 파라미터 그룹 신규 생성
우선 신규로 파라미터그룹을 만들어보자.
[AWS Management Console] -> [RDS] -> [파라미터 그룹] -> [파라미터 그룹 생성]을 선택한다.
DB 버전에 맞게 [파라미터 그룹 패밀리]를 선택하고 [그룹 이름]을 임의로 작성 후 [생성]을 눌러준다.
그 다음 생성한 파라미터 그룹을 선택하고 [편집]을 누른다.
파라미터 검색창에 [character]을 입력하여 검색되는 아래 6개의 값을 [utf8]로 변경 후 [변경 사항 저장]을 누른다.
- character_set_client
- character_set_connection
- character_set_database
- character_set_filesystem
- character_set_results
- character_set_server
그 다음 파라미터 검색창에 [collation]을 입력하여 검색되는 아래 2개의 값을 [utf8_general_ci]로 변경 후 [변경 사항 저장]을 누른다.
- collation_connection
- collation_server
3. DB에 파리미터 그룹 연결 후 재부팅
DB를 신규로 만들게 되면 해당 DB의 파라미터 그룹에 조금 전 등록한 파라미터 그룹을 연결하면 되고, 만약 DB가 이미 등록되어 있다면 파라미터 그룹을 수정해주자.
[AWS Management Console] -> [RDS] -> [데이터베이스]에서 파라미터 그룹을 수정할 데이터베이스를 선택한 후 [수정]을 누른다.
[데이터베이스 옵션]에서 조금 전 생성한 파라미터 그룹을 선택한 후 [계속]을 누른다.
[즉시 적용] 선택 후 [DB 인스턴스 수정]을 누른다.
해당 데이터베이스의 [정보]가 [수정 중]에서 [사용 가능]으로 바뀌게 되면 [작업] -> [재부팅]을 해주자.
4. MariaDB 추가 작업
작업이 완료된 후 SQL을 실행시켜서 character-set 및 collation을 확인해보자.
show variables like 'c%';
SQL을 실행시키면 다른 정보들은 변경되었지만 character_set_database과 collation_database는 변경이 안된것을 확인할 수 있다(MariaDB에서만 발생하는 버그인 듯 싶다).
때문에 아래 SQL을 추가적으로 실행시킨 후 기존 테이블 삭제 후 재 생성하게 되면 한글깨짐현상 문제가 해결된다
ALTER DATABASE [데이터베이스명]
CHARACTER SET = 'utf8'
COLLATE = 'utf8_general_ci';
참고
https://velog.io/@minholee_93/AWS-Amazon-RDS-%ED%95%84%EC%88%98-%EC%84%A4%EC%A0%95