更改MySQL Workbench上的默认字符集

Yah*_*din 5 mysql mysql-workbench

我正在尝试使用utf8mb4charset 连接到我的MYSQL数据库(注意数据库charset的全局设置已经是utf8mb4).

我可以很容易地使用CLI这样做:

mysql -h myhostname -u myuser -p --default-character-set=utf8mb4
Run Code Online (Sandbox Code Playgroud)

当我执行以下查询时:

SHOW VARIABLES WHERE Variable_name LIKE 'character\_set\_%' OR Variable_name LIKE 'collation%';
Run Code Online (Sandbox Code Playgroud)

我按预期得到了正确的输出:

+--------------------------+--------------------+
| 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_general_ci |
| collation_database       | utf8mb4_unicode_ci |
| collation_server         | utf8mb4_unicode_ci |
+--------------------------+--------------------+
Run Code Online (Sandbox Code Playgroud)

但是,当我使用MySQL Workbench连接到我的MySQL数据库并执行相同的查询时,我得到以下内容:

+--------------------------+--------------------+
| Variable_name            | Value              |
+--------------------------+--------------------+
| character_set_client     | utf8               |
| character_set_connection | utf8               |
| character_set_database   | latin1             |
| character_set_filesystem | binary             |
| character_set_results    | utf8               |
| character_set_server     | utf8mb4            |
| character_set_system     | utf8               |
| collation_connection     | utf8_general_ci    |
| collation_database       | latin1_swedish_ci  |
| collation_server         | utf8mb4_unicode_ci |
+--------------------------+--------------------+
Run Code Online (Sandbox Code Playgroud)

这里的问题是我正在努力改变default-character-setMySQL Workbench GUI.我尝试附加以下内容:

default-character-set=utf8mb4
Run Code Online (Sandbox Code Playgroud)

在管理服务器连接>连接>高级>其他部分中,

但似乎没有任何影响.

如何更改MySQL Workbench GUI上的默认字符集.

小智 11

AFAIK 每次启动新的工作台会话时都必须执行此命令:

SET NAMES 'utf8mb4' COLLATE 'utf8mb4_unicode_ci';
Run Code Online (Sandbox Code Playgroud)

更新

如果您需要使用 Workbench 进行导出,以下内容很有用:(我还没有找到类似的方法来使其所有连接默认为 utf8mb4)

导出数据时使用的默认字符集是 utf8。为了支持完整的 Unicode,我们需要 utf8mb4。为了实现这一点,可以修改 Workbench 以手动使用 utf8mb4。

  • 转到 C:\Program Files\MySQL\MySQL Workbench 6.3 CE\modules 打开此文件 wb_admin_export.py。
  • 在 Mac 上 Applications/MySQLWorkbench.app/Contents/Resources/plugins/wb_admin_export.py
  • 创建备份副本
  • 将所有出现的“default-character-set”:“utf8”替换为“default-character-set”:“utf8mb4”。
  • 保存文件。
  • 重新启动工作台。

下次运行导出时,您将在日志结果中看到如下所示:

运行: mysqldump.exe --defaults-file="c:\users\jonathan\appdata\local\temp\tmpidlh7a.cnf" --host=localhost --protocol=tcp --user=root --allow-keywords= TRUE --port=3306 --default-character-set=utf8mb4 --routines --skip-triggers "数据库名称"