デフォルトの文字セットを に設定し、照合utf8mb4
をutf8mb4_unicode_ci
チュートリアルで指定されているように、C:\ProgramData\MySQL\MySQL Server 5.7にある .ini ファイルに次の設定を適用しました。
[client]
default-character-set = utf8mb4
[mysql]
default-character-set = utf8mb4
[mysqld]
character-set-client-handshake = FALSE
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
MySql Workbench でこのクエリを実行すると、次のようになります。
SHOW VARIABLES WHERE Variable_name LIKE 'character\_set\_%' OR Variable_name LIKE 'collation%'
期待するシステム変数が表示されていないため、最初はサーバーの構成が間違っていると思いました。
MySql Workbench の出力
character_set_client utf8
character_set_connection utf8
character_set_database utf8mb4
character_set_filesystem binary
character_set_results utf8
character_set_server utf8mb4
character_set_system utf8
collation_connection utf8_general_ci
collation_database utf8mb4_unicode_ci
collation_server utf8mb4_unicode_ci
ただし、ネイティブの MySQL コマンド ライン クライアントを使用すると、次のような結果が得られます。
+--------------------------+--------------------+
| 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 |
| collation_connection | utf8mb4_unicode_ci |
| collation_database | utf8mb4_unicode_ci |
| collation_server | utf8mb4_unicode_ci |
+--------------------------+--------------------+
コマンド ライン クライアントのように、MySql Workbench が構成設定を尊重しないのはなぜですか?
MySql : Windows/5.7.21
MySql Workbench : Windows/6.3.10