以下の方法で進める。
1. パラメータ変更
2. RDS再起動
3. ALTER DATABASE DBnoNamae CHARACTER SET utf8mb4;
(デフォルトで utf8mb4_general_ci だったが照合順序を指定する場合)ALTER DATABASE DBnoNamae CHARACTER SET utf8mb4 collate utf8mb4_general_ci
4. RDS再起動
(ROW_FORMATがDYNAMICでない場合)ALTER TABLE テーブル名 ROW_FORMAT=DYNAMIC;
5. テーブルのバックアップを取る
6. ALTER TABLE teburunonamae CONVERT TO CHARACTER SET utf8mb4;
7. 寿司の登録。パパ、ハハのチェック。AとaとAの違い。
パラメータは以下を指定。
Amazon RDS上のMySQLをutf8からutf8mb4に変更する手順 | Playful IT - Designing and Engineering "遊び心"駆動開発
character_set_client:utf8mb4
character_set_connection:utf8mb4
character_set_database:utf8mb4
character_set_results:utf8mb4
character_set_server:utf8mb4
innodb_large_prefix:1
innodb_file_format:Barracuda
innodb_file_per_table:1
skip-character-set-client-handshake:1
文字コードの確認方法
mysql> show variables like '%char%';
mysql> SHOW VARIABLES LIKE 'coll%';
MySQLで文字コードに苦戦している人向けのメモ - Qiita
SHOW VARIABLES LIKE 'character\_set\_%';
character_set | 解説 |
---|---|
character_set_client | クライアントが送ってくるとサーバーが想定している文字コード |
character_set_connection | クエリを実行する文字コード |
character_set_database | 使っているデータベースの文字コード。変える必要はないしsetで変えてはいけない。 |
character_set_filesystem | ファイル名の文字コード。デフォルトでいい |
character_set_results | クライアントに結果を返すときの文字コード |
character_set_server | 新規にデータベースを作るときの文字コード。設定しておくと楽。いろいろ継承されるが上書きできる。 |
character_set_system | テーブル名とかを保存する文字コード。デフォルトでいい |
skip-character-set-client-handshake を有効にしない場合、latin1が残るので有効にする必要あり
Amazon RDS(Aurora)で日本語文字列や絵文字を使えるようにする | 分析ノート
「skip-character-set-client-handshake」は「character_set_server」の値を参照する
文字コード確認設定 | スマップスオフィシャル | スマップスオフィシャル
参考
Amazon Aurora MySQL 5.7 互換の文字コードをutf8mb4にする - karakaram-blog
寿司
[MySQL] 文字コード問題 -みんな大好き寿司ビール🍣🍺- - Qiita