Я слежу за этим руководством по настройке сервера/базы данных MySQL для unicode, надеясь настроить набор символов по умолчанию для utf8mb4
и сопоставление с utf8mb4_unicode_ci
Как и то, что указано в учебнике, у меня есть следующие параметры, применяемые в моем.ini файле, расположенном в C:\ProgramData\MySQL\MySQL Server 5.7:
[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
MySQL Workbench не читает ini файл и, следовательно, не использует никаких значений в нем. Как это сделать, учитывая, что он может одновременно подключаться ко многим серверам?
MySQL Workbench использует фиксированную кодировку для наборов символов клиента и соединения (utf-8).
До версии 8.0.11 RC MySQL Workbench фактически использовал кодировку utf8mb3. Начиная с этой версии, он переключился на utf8mb4.