在MySQL Workbench上更改默认字符集

11

我正尝试使用 utf8mb4 字符集连接到我的MYSQL数据库(注意,数据库字符集的全局设置已经是 utf8mb4)。

我可以很容易地使用 CLI 进行操作,如下所示:

mysql -h myhostname -u myuser -p --default-character-set=utf8mb4

当我执行以下查询时:

SHOW VARIABLES WHERE Variable_name LIKE 'character\_set\_%' OR Variable_name LIKE 'collation%';

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

+--------------------------+--------------------+
| 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 |
+--------------------------+--------------------+

然而,当我使用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 |
+--------------------------+--------------------+

这里的问题在于我无法在MySQL Workbench GUI中更改default-character-set。我尝试添加以下内容:

default-character-set=utf8mb4

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

但似乎没有任何影响。

我该如何在MySQL Workbench GUI上更改默认字符集?


你好,你找到解决方案了吗?谢谢! - Eliran Tutia
不,幸运的是它似乎没有引起太多问题。不过我希望能有一个解决方法。 - Yahya Uddin
在 Mac 上有什么想法吗? - Rafee
2个回答

9
据我所知,每次启动新的Workbench会话时,您都需要执行此命令:
SET NAMES 'utf8mb4' COLLATE 'utf8mb4_unicode_ci';

更新

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

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

  • 转到C:\ Program Files \ MySQL \ MySQL Workbench 6.3 CE \ modules,打开此文件wb_admin_export.py。
  • 创建备份副本
  • 将所有出现的“default-character-set”:“utf8”替换为“default-character-set”:“utf8mb4”。
  • 保存文件。
  • 重新启动Workbench。

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

Running: 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“databasename”


这真是令人沮丧 :/ 但感谢您确认它。 - Bizmate
你找到解决方案了吗?谢谢。 - Ricardo

0
在MySQL Workbench(8.0)中,您可以单击“Administration”选项卡,在“Instance”下选择“Options File”,滚动到“International”部分,您将找到“character-set-server”和“collation-server”,您可以将其设置为所需的字符集和校对规则。单击“应用”按钮以保存更改。
这将在/etc/mysql/my.cnf或您的配置文件中设置值。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接