RDSの[Launch DB Instance]よりMySQLを作成する際に、任意のdatabaseを1つ作成できます。
その際、DBパラメーターグループを割り当てることが出来るのですが、「任意のdatabase」に対して
DBパラメーターグループが反映されていないようです。
気付いたきっかけは、databaseの文字コードをutf8にDBパラメータグループで指定して作成したはずが、
そのdatabaseの文字コードがutf8ではなく、RDS-MySQLでのデフォルト文字コードlatin1のままで
変更されていなかった事からでした。
①まず、DBパラメータグループを作成します。
ここで文字コードをutf8に指定します。
※指定しない場合、デフォルト値はlatin1になってしまいます。
②次に、事前作成したDBパラメーターグループを指定して、MySQLのDBインスタンスを作成します。
③EC2からRDSのMySQLにログインし、「Launch DB Instance Wizard」で作成したdatabase”testdb”の
文字コードを確認します。
[root@ip-xx-xx-xx-xx ~]# mysql -u root -p -h testdbinstance.xxxxxxxxxxxxx.ap-northeast-1.rds.amazonaws.com
Enter password:
~
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| innodb |
| mysql |
| performance_schema |
| testdb |
+--------------------+
5 rows in set (0.00 sec)
mysql> show create database testdb;
+----------+-------------------------------------------------------------------+
| Database | Create Database |
+----------+-------------------------------------------------------------------+
| testdb | CREATE DATABASE `testdb` /*!40100 DEFAULT CHARACTER SET latin1 */ |
+----------+-------------------------------------------------------------------+
1 row in set (0.00 sec)
文字コードはデフォルトのlatin1になっています。
mysql> create database newdb;
Query OK, 1 row affected (0.00 sec)
mysql> show create database newdb;
+----------+----------------------------------------------------------------+
| Database | Create Database |
+----------+----------------------------------------------------------------+
| newdb | CREATE DATABASE `newdb` /*!40100 DEFAULT CHARACTER SET utf8 */ |
+----------+----------------------------------------------------------------+
1 row in set (0.00 sec)
しかし、新規でdatabaseを作成すると文字コードはutf8となり、DBパラメータグループの設定が
反映されていることが分かります。
DBパラメータグループは、RDSインスタンス起動後でないと有効にならないと思われます。