kwondroid의 개발 세계

AWS RDS MySQL 한글이 깨짐 오류(파라미터 그룹은 오류가 없을 때) 본문

개발

AWS RDS MySQL 한글이 깨짐 오류(파라미터 그룹은 오류가 없을 때)

kwondroid 권오철 2021. 2. 8. 22:26

개발 환경상의 구조때문에 개발 용도로 사용하던 DB가 접근이 불가능하게 됐다.

 

그런데 개발용도라서 막 쓰던 인스턴스이기도 하고 기존 개발하고 있던 DB 테이블 구조도 따로 갖고 있어서 새로운 인스턴스를 만들었다.

새로운 스키마와 테이블을 만들고 데이터를 밀어 넣었더니... 이게 웬걸??? 글이 ???로 나오는 것이었다???

 

새로운 인스턴스에 적용한 파라미터 그룹은 접근이 불가능하게 된, 한글 사용에 문제가 없던 DB의 파라미터 그룹을 그대로 적용을 했기에 파라미터의 문제는 아니라고 판단했다. 

그럼 클라이언트의 문제인가? 했지만 웹 프론트나 DataGrip 는 모두 정상적으로 UTF8이 적용되어 있었다. 

그렇다면 결국 문제는 DB자체 문제라고 생각했다.

 

그래서 일단 아래 쿼리를 이용해 character_set 의 변수들을 보았다.

show variables like 'c%';

모든 character_set 들은 정상적으로 UTF8이 적용이 됐지만 character_set_database 은 latin1이 collation_database은 latin1_swedish_ci 로 지정이 되어있었다. 

하지만 파라미터 그룹의 character_set_database은 분명히 utf8이 지정되어있다.

 

그럼 collation_database을 파라미터 그룹에서 바꿔야 하나? 싶지만 그건 아니다.

collation_database 파라미터를 찾을 수 없다.

왜냐하면 파라미터 그룹에 해당 파라미터는 없기 때문이다. 

 

그럼 이를 어떻게 바꿀 수 있을까??

AWS 공식 문서는 아래처럼 설명하고 있다.

즉 우리가 한글을 사용하게 하려면 이렇게 쿼리를 날려주면 된다.

ALTER DATABASE {schema} CHARACTER SET = 'utf8' COLLATE = 'utf8_general_ci';

이 쿼리를 날리고 나면 character_set_database은 UTF8로, collation_database은 utf8_general_ci로 변경이 된다.

이후 테이블들을 재생성 해주고 한글 입력이 매우 잘 되게 된다.

 

구글은 파라미터 그룹을 바꾸라는 글만 주구장창 나오고 이 내용은 거의 나오지 않는다. (나의 검색 키워드가 잘못된...건가...?)

거의 유일하게 나온 힌트가 AWS의 공식 문서인데 여느 문서가 다 그렇지만 자세한 쿼리는 알려주지 않는다. 

그런 어려움을 겪고 있는 사람들을 위해 내 글이 도움이 되길 기도한다. 

 

그럼 20000

Comments