MySQL
AWS
文字コード
Aurora
character

AWS Aurora MySQL5.7互換の文字コードをutf8mb4に変更

環境

  • AWS Aurora MySQL5.7互換

実施したこと

Auroraの場合は、パラメータグループが2種類あって、文字コードを変更するときはクラスターのパラメータグループの方で変更する必要があります。
Amazon Aurora MySQL リファレンス

RDS MySQL5.7からAurora MySQL5.7互換に移行したときに意外とAuroraの記事が少なかったので。

前提条件
既にAuroraを構築して、インスタンスも起動している状態とします。

クラスターのパラメータグループ作成

パラメータグループの作成を選択します。
スクリーンショット 2018-03-08 16.51.13.png

タイプでDB Cluster Parameter Groupを選択して作成します。
スクリーンショット 2018-03-08 17.18.31.png

パラメータグループの編集

作成したパラメータグループから編集します。
スクリーンショット 2018-03-08 17.21.51.png

今回は以下のパラメータをutf8mb4に変更しました。
character_set_client
character_set_connection
character_set_database
character_set_results
character_set_server

DB クラスターのパラメータグループを変更する

クラスターメニューからクラスターの変更を選択します。
スクリーンショット 2018-03-08 17.26.01.png

DBクラスターのパラメータグループを上記で作成したパラメータグループにしてクラスターの変更します。
スクリーンショット 2018-03-08 17.33.23.png

私の場合、開発中の環境でしたので、すぐに適用を選択し、念のためインスタンスの再起動を行いました(再起動は必要ないかもしれないです)。

変更の確認

DBインスタンスにMySQLログインして確認。

mysql> show global variables like 'character%';
+--------------------------+---------------------------------------------+
| Variable_name            | Value                                       |
+--------------------------+---------------------------------------------+
| character_set_client     | utf8mb4                                     |
| character_set_connection | utf8mb4                                     |
| character_set_database   | utf8mb4                                     |
| character_set_filesystem | binary                                      |
| character_set_results    | utf8mb4                                     |
| character_set_server     | utf8mb4                                     |

データベースがすでに作成されている場合は、データベースの文字コード変更をする。

mysql> use DB名
Database changed
mysql> show variables like "chara%";
+--------------------------+---------------------------------------------+
| Variable_name            | Value                                       |
+--------------------------+---------------------------------------------+
| character_set_client     | utf8                                        |
| character_set_connection | utf8                                        |
| character_set_database   | utf8mb4                                     |
| character_set_filesystem | binary                                      |
| character_set_results    | utf8                                        |
| character_set_server     | utf8mb4                                     |

mysql> set character_set_client = utf8mb4;
Query OK, 0 rows affected (0.00 sec)

mysql> set character_set_connection = utf8mb4;
Query OK, 0 rows affected (0.01 sec)

mysql> set character_set_database = utf8mb4;
Query OK, 0 rows affected, 1 warning (0.00 sec)

mysql> set character_set_results = utf8mb4;
Query OK, 0 rows affected (0.01 sec)

mysql> set character_set_server = utf8mb4;
Query OK, 0 rows affected (0.00 sec)

mysql> show variables like "chara%";
+--------------------------+---------------------------------------------+
| Variable_name            | Value                                       |
+--------------------------+---------------------------------------------+
| character_set_client     | utf8mb4                                     |
| character_set_connection | utf8mb4                                     |
| character_set_database   | utf8mb4                                     |
| character_set_filesystem | binary                                      |
| character_set_results    | utf8mb4                                     |
| character_set_server     | utf8mb4                                     |

参考

以下記事が大変参考になりました。ありがとうございました。
MySQLの文字コードをutf8mb4に変更

余談:Aurora所感

今のところMySQLと同じように扱えています。