经验分享 - 让 MySQL 支持 Emoji 表情

发布于 2023-07-14 06:32:53 字数 1444 浏览 31 评论 0

一、修改 MySQL 的配置文件

MySQL 的配置文件 my.cnf ,所在位置一般在: /etc/my.cnf ,如果不在这个目录下,可以搜索下: whereis my.cnf

修改每个对应项为 utf8mb4 编码:

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

修改完成后,重启 MySQL,然后查看配置是否生效:

SHOW VARIABLES LIKE 'character_set_%'

如果打印结果如下,则表示配置生效:

character_set_client	utf8mb4
character_set_connection	utf8mb4
character_set_database	utf8
character_set_filesystem	binary
character_set_results	utf8
character_set_server	utf8mb4
character_set_system	utf8
character_sets_dir	/usr/share/mysql/charsets/

二、修改数据库表和字段的编码

要使得某个表、某个字段支持 Emoji,就修改表的编码、字段的编码为 utf8mb4

# 修改表的编码
ALTER TABLE `my_table` CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
 
# 修改字段的编码
ALTER TABLE `my_table` MODIFY COLUMN `my_column` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

三、(可选)修改 Sequelize 的配置编码

如果你的数据库表是通过 Sequelize 这种 ORM 自动生成,那么需要修改其默认的编码。
如果数据库表是自己创建的,则可以不用管 Sequelize 的配置。

options: {
   dialect: "mysql",
   dialectOptions: {
       charset: "utf8mb4",
       collate: "utf8mb4_unicode_ci",
       supportBigNumbers: true,
       bigNumberStrings: true
    }
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

念﹏祤嫣

暂无简介

0 文章
0 评论
24 人气
更多

推荐作者

金兰素衣

文章 0 评论 0

ゃ人海孤独症

文章 0 评论 0

一枫情书

文章 0 评论 0

清晰传感

文章 0 评论 0

mb_XvqQsWhl

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文