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:

  1. 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.
  2. Muokataan kyseistä DB Parameter Groupia siten, että oletuksena käytetään UTF-8-merkistöä.
  3. 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.