mysql5.7修改编码

为了存储emoji表情,需要将mysql数据库编码由默认的utf8转为utf8mb4。

  • windows server 2012r2
  • mysql5.7

在…\ProgramData\MySQL\MySQL Server 5.7目录下找到my.ini,增加以下内容。(PS:可能是隐藏文件夹。)

[client]
default-character-set=utf8mb4
[mysql]
default-character-set=utf8mb4
[mysqld]
character-set-client-handshake=FALSE
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci
init_connect='SET NAMES utf8mb4'

重启数据库服务,查询编码集。

SHOW VARIABLES WHERE Variable_name LIKE 'character_set_%' OR Variable_name LIKE 'collation%';

结果如下图:
mysql编码集查询结果
必须保证以下属性变为utf8mb4:

系统变量描述
character_set_client客户端来源数据使用的字符集
character_set_connection连接层字符集
character_set_database当前选中数据库的默认字符集
character_set_results查询结果字符集
character_set_server默认的内部操作字符集

***注意:***最好在mysql命令行中查询编码集结果,第三方工具可能由于客户端请求编码设置的原因查询结果不正确。

### 如何在 MySQL 5.7 中设置和修改字符编码 #### 查看当前字符编码配置 为了确保能够正确地调整字符编码,在更改之前先了解现有的字符编码是非常重要的。可以通过执行以下 SQL 命令来查看 MySQL 的默认字符集: ```sql SHOW VARIABLES LIKE '%char%'; ``` 或者使用更具体的查询语句: ```sql SHOW VARIABLES LIKE 'character%'; ``` 这些命令会返回一系列关于字符集的信息,包括但不限于 `character_set_server` 和 `collation_server` 等参数[^2]。 #### 修改全局字符编码设置 对于希望永久改变服务器级别的字符编码的情况,编辑 MySQL 配置文件(通常是 my.cnf 或者 my.ini 文件),找到 `[mysqld]` 段并加入如下几行以设定 UTF-8 编码作为默认值: ```ini [mysqld] character-set-server=utf8mb4 collation-server=utf8mb4_unicode_ci ``` 保存更改后的配置文件,并重启 MySQL 服务使新的设置生效。这一步骤可以确保新创建的数据表以及数据库都将采用指定的字符编码标准[^1]。 #### 更新现有数据库及其对象的字符编码 如果已经存在一些含有不正确编码的数据,则还需要进一步处理已有的数据库、表格乃至字段级别上的字符集定义。针对单个数据库可运行下面这条指令将其转换为期望的目标编码形式: ```sql ALTER DATABASE database_name CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; ``` 同样地,也可以单独对某个特定的数据表应用相同的变更操作: ```sql ALTER TABLE table_name CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; ``` 最后,当涉及到具体列的时候,应该逐一对它们实施相应的 ALTER COLUMN 变动动作,比如这样: ```sql ALTER TABLE table_name MODIFY column_name VARCHAR(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; ``` 通过上述方法可以在很大程度上改善由于字符编码不当所引发的一系列问题,从而保障存储于 MySQL 数据库内的非 ASCII 字符能被正常读取与展示[^3]。
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值