2018-08-09 | UNLOCK

Mysql支持emoji表情

1. 前言

最近为博客添加了Valine评论系统,因为它用的Leancloud的数据库,所以打算写个程序定时爬下来新的数据,并且存到自己的数据库中(毕竟在自己手中才是最安全的)。因为评论里面有emoji表情,所以需要数据库支持utf8mb4编码

2. 踩坑

服务器安装的数据库是Mysql 5.7。网上很多方法是通过命令行设置字符集编码格式,但是经过尝试,都以失败告终。

摸索后发现,需要更改mysql的配置文件。

首先,备份原来的配置文件:sudo cp /etc/mysql/mysql.conf.d/mysqld.cnf /etc/mysql/mysql.conf.d/mysqld.cnf.bak

然后,在mysqld.cnf文件中添加如下配置:

1
2
3
4
5
6
7
8
9
10
11
[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' # 指定每次连接的字符集utf8mb4

最后,保存退出后,重启mysql服务:sudo service mysql restart

3. 使用

为了方便使用,我一直使用的是mysql-font。在创建表格时候,设置字符集是utf8mb4,如下图所示:

设置utf8mb4

最后,各式各样的emoji表情就可以存储在数据库了:

😀😃😄😁😆😅😂😊😇😉😌😍😘😗😙😚😋😜😝😛😎😏😒😞😔😟😕😣😖😫😩😠😡😶😐😑😯😦😧😮😲😵😳😱😨😰😢😥😭😓😪😴😷😈😺😸😹😻😼😽🙀😿😾🐱🐭🐮🐵✋✊✌️👆👇👈👉👊👋👏👐👍👎👌🙏👂👀👃👄👅❤️💘💖⭐️✨⚡️☀️☁️❄️☔️☕️✈️⚓️⌚️☎️⌛️✉️✂️✒️✏️❌♻️✅❎Ⓜ️

请针对 Disqus 开启代理