MySQL Workbench不尊重配置的字符集utf8mb4

时间:2018-04-23 17:31:51

标签: mysql mysql-workbench character-set

我一直在关注如何为unicode设置MySQL服务器/数据库的this tutorial,希望将默认字符集设置为utf8mb4,并整理到{{1} }

就像教程中指定的一样,我在.ini文件中应用了以下设置,位于 C:\ ProgramData \ MySQL \ MySQL Server 5.7

utf8mb4_unicode_ci

在MySql Workbench中运行此查询时:

    [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命令行客户端时,我看到了我的期望:

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 Workbench不尊重配置设置,比如命令行客户端呢?

MySql :Windows / 5.7.21
MySql Workbench :Windows / 6.3.10

1 个答案:

答案 0 :(得分:1)

  1. MySQL Workbench不读取ini文件,因此不使用其中的任何值。它怎么能,因为它可以同时连接到许多服务器?

  2. MySQL Workbench对客户端和连接字符集使用固定编码(utf-8)。

  3. 直到版本8.0.11 RC MySQL Workbench实际上使用了utf8mb3字符集。从该版本开始,它切换到utf8mb4。