经验分享 - 让 MySQL 支持 Emoji 表情
一、修改 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论