delhi09の勉強日記

技術トピック専用のブログです。自分用のメモ書きの投稿が多いです。あくまで「勉強日記」なので記事の内容は鵜呑みにしないでください。

MySQL8系ではデフォルトで文字コードがutf8mb4に設定されている

MySQL8系では、文字コードがデフォルトでutf8mb4に設定されていることを知った。

mysql> show variables like '%char%';
+--------------------------+--------------------------------+
| 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                        |
| character_set_system     | utf8                           |
| character_sets_dir       | /usr/share/mysql-8.0/charsets/ |
+--------------------------+--------------------------------+
8 rows in set (0.01 sec)

MySQL5系では、デフォルトの文字コードがlatin1だったので、日本語を扱う場合は以下のように、my.cnfの設定で文字コードをUTF8に設定しなければならなかった。

[mysqld]
character-set-server=utf8

[mysql]
default-character-set=utf8

[client]
default-character-set=utf8

[mysqldump]
default-character-set=utf8

なので、公式のMySQL5系のDockerコンテナを拡張した独自のDockerコンテナを作ったりしていた。
github.com

MySQL8系からはこのような作業は不要ということになる。
嬉しい。