我正在尝试使用
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 上的默认字符集。
据我所知,每次启动新的工作台会话时都必须执行此命令:
SET NAMES 'utf8mb4' COLLATE 'utf8mb4_unicode_ci';
更新
如果您需要使用 Workbench 进行导出,以下内容很有用:(我还没有找到类似的方法来使其所有连接默认为 utf8mb4)
导出数据使用的默认字符集是utf8。为了支持完整的 Unicode,我们需要 utf8mb4。为了实现这一点,可以修改 Workbench 以手动使用 utf8mb4。
下次运行导出时,您将在日志结果中看到如下所示:
运行: mysqldump.exe --defaults-file="c:\users\jonathan ppdata\local emp mpidlh7a.cnf" --host=localhost --protocol=tcp --user=root --allow-keywords=TRUE --port=3306 --default-character-set=utf8mb4 --routines --skip-triggers "数据库名称"
在 MySQL Workbench (8.0) 中,您可以单击 Administration 选项卡,选择 Instance 下的 Options File,滚动到 International 部分,您将找到 character-set-server 和 collation- server,您可以将其设置为所需的字符集和排序规则。单击应用按钮保存更改。
这将在 /etc/mysql/my.cnf 或您的配置文件所在的任何位置设置值。