[T0002] RDS MariaDB character set
2024-08-05
Problem
When I was developing in local, Korean worked fine. But when I tried to use AWS RDS, Korean didn't work well.
Environment
DB: MariaDB in docker
version: 11.4 (latest)
Tracking
I searched the internet. It seemed character encoding problem.
And in regard to version, docker latest was 11.4 and RDS was 10.11. I changed local mariadb version to 10.11.
I checked current encoding settings.
show variables where variable_name like 'c%';Docker MariaDB
utf8mb4
utf8mb4_general_ci
RDS MariaDB
latin1
latin1_swedish_ci
Why do they have different settings without any manual change?
RDS uses default value. Debian distribution uses different value.
https://mariadb.com/kb/en/differences-in-mariadb-in-debian-and-ubuntu/
Solution
I created parameter group in RDS. Then I changed values of character_set_server and collation_server.
I created database instance using the parameter group that I made.
Some blog says that I also should change other parameters having character_set_ prefix. But It was enough to change the two, character_set_server and collation_server. Refer to https://mariadb.com/kb/en/server-system-variables/#character_set_server
If I need to change parameters on working RDS, it requires DB reboot.
Further
Last updated