Amazonin RDS-tietokantapalvelu on hieno keksintö, mutta vaatii pientä konfigurointia toimiakseen UTF-8-merkistön kanssa yhteen. Itse olen noudattanut näitä ohjeita luodessani uusia RDS-tilejä ja -instansseja.
Tiivistäen täytyy tehdä seuraavaa:
- Luodaan uusi DB Parameter Group, ellei sellaista ole vielä luotu. Tämän nimeksi voi laittaa vaikkapa utf8-mysql55. MySQL:n eri versioille tarvitaan omat ryhmät (5.1.x, 5.5.x) ja ryhmät ovat Amazon-tilikohtaisia.
- Muokataan kyseistä DB Parameter Groupia siten, että oletuksena käytetään UTF-8-merkistöä.
- Käytetään tätä DB Parameter Groupia aina uusia RDS-instansseja luotaessa.
Asetusryhmän muokkaus käy tällä komennolla, kun RDS CLI -työkalut on asennettu:
rds-modify-db-parameter-group utf8-mysql55 --parameters="name=character_set_server, value=utf8, method=immediate" --parameters="name=collation_server, value=utf8_swedish_ci, method=immediate"
Jos on ehtinyt jo luoda MySQL-tietokantoja ennen asetusryhmän muokkaamista, niin niiden merkistöt voi käydä jälkikäteen muuttamassa MySQL:n komentoriviltä:
mysql> alter database mydatabase default character set utf8;
mysql> alter database mydatabase default collate utf8_swedish_ci;
Asetusryhmän vaihtaminen olemassaolevaan RDS-instanssiin täytyy myöskin tehdä komentoriviltä:
rds-modify-db-instance myinstance --db-parameter-group-name utf8-mysql55
rds-reboot-db-instance myinstance
Lienee odotettavissa, että ennen pitkää nämä asiat onnistuvat myös AWS-hallintakonsolista.