AWS의 RDS를 사용하면서 마주친 어려운 오류를 경험했다. 처음엔 단순해 보였지만, 해결까지 많은 시간이 들었다. 이 문제를 해결한 후, 같은 문제로 고생하는 다른 사람들을 위해 이 해결 방법을 공유하기로 했다. 특히 이 글을 보고 많은 사람들이 같은 문제로 어려움을 겪고 있음을 알게 됐다.
이번에 다룰 내용은 아래 오류에 대한 것이다.
Error: 1366-22007: Incorrect string value: '\xEC\xA0\x9C\xEB\xAA\xA9' for column
이 오류의 원인은 정말 간단하다. 데이터베이스의 character set이 utf-8이 아니어서 한글을 저장할 수 없기 때문이다.
해결 방법으로는 ssh로 RDS에 접속해 nano /etc/mysql/my.cnf 파일을 변경하는 것이다. 하지만 AWS를 사용하면서 AWS의 기능으로 해결하고 싶었다.
AWS에서 RDS에 접속해 아래 설정들을 해주면 된다.
이 설정들을 적용하고 즉시 반영하면 바로 적용된다. 하지만 이 내용만으로는 글을 쓰지 않았을 것이다. 글을 쓰게 된 이유는 파라미터 그룹을 편집하고도 오류가 계속 발생하기 때문이다. 파라미터 그룹을 편집하고도 오류가 발생하는 이유는 간단하다. 바로 이미 생성된 데이터베이스라서 수정사항이 적용되지 않았기 때문이다. 아래 명령어를 입력해보면, 생성한 데이터베이스의 언어 설정이 utf8mb4로 바뀌지 않고 latin1로 유지되고 있는 것을 알 수 있다.
SELECT * FROM information_schema.SCHEMATA
이 문제를 해결하기 위해서는 데이터베이스를 삭제한 뒤, 다시 생성하면 된다.
DROP DATABASE database_name;
CREATE DATABASE database_name;