在 MySQL my.cnf 中设置 character_set_results UTF8

在 MySQL my.cnf 中设置 character_set_results UTF8

如何将变量 character_set_results 从 latin1 设置为 uft8?我认为在 my.cnf 中添加以下变量就足够了:

default-character-set=utf8

但事实似乎并非如此:

mysql> SHOW VARIABLES LIKE 'character_set_%';
+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | latin1                     |
| character_set_connection | latin1                     |
| character_set_database   | utf8                       |
| character_set_filesystem | binary                     |
| character_set_results    | latin1                     |
| character_set_server     | utf8                       |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+

有人知道如何将 character_set_results 设置为 utf8 吗?

答案1

字符集在连接时由客户端和服务器协商。

为了防止这种情况并强制客户端和服务器使用您配置的字符集:
[mysqld]
skip-character-set-client-handshake=1
default-character-set=utf8

答案2

通过这样的设置它可以工作:
[mysqld]
skip-character-set-client-handshake=1
default-character-set=utf8

问候马克

答案3

这一页

看来 character-set-results 和 character-set-connection 不能在配置文件的 [mysqld] 部分中设置。您必须将它们放在 [client] 部分中。

我个人没有尝试过。

相关内容