【问题标题】:How to set utf8mb4 on MySQL 5.7 (windows)如何在 MySQL 5.7 (windows) 上设置 utf8mb4
【发布时间】:2016-02-11 22:59:43
【问题描述】:

我在 Windows 7 机器上安装了 MySQL 5.7。 我需要更改数据库的字符集才能保留表情符号。

配置成my.ini:

[client]
default-character-set = utf8mb4

[mysql]
default-character-set = utf8mb4

[mysqld]
default-character-set = utf8mb4
character-set-client-handshake = FALSE
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci

进入windows服务看到加载的配置文件路径是正确的。

使用查询查看数据库属性:

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

我得到了以下结果:

Variable_name   Value
character_set_client    utf8
character_set_connection    utf8
character_set_database  utf8mb4
character_set_filesystem    binary
character_set_results   utf8
character_set_server    utf8
character_set_system    utf8
collation_connection    utf8_general_ci
collation_database  utf8mb4_general_ci
collation_server    utf8_general_ci

所以,collat​​ion_server、character_set_system、character_set_server、character_set_results、character_set_connection、character_set_client的值是错误的。

我该如何修复它们? 谢谢。

【问题讨论】:

    标签: mysql windows character-encoding


    【解决方案1】:

    连接MySQL后,执行SET NAMES utf8mb4。这将确定您的客户端正在使用完整的 4 字节编码进行读/写。

    您可以在 my.cnf/my.ini 中执行此操作:

    init_connect = 'SET NAMES utf8mb4'
    

    但请记住,以 root(或任何SUPER 用户)身份连接时,init_connect 将被忽略。

    另外,表格/列必须是CHARACTER SET utf8mb4

    【讨论】:

      猜你喜欢
      • 2021-01-10
      • 2017-10-05
      • 1970-01-01
      • 2019-07-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多