因?yàn)橹霸O(shè)計(jì)的時(shí)候使用的是utf-8編碼冗尤,最多三個(gè)字節(jié)听盖,而Emoji表情是四個(gè)字節(jié)胀溺,所以導(dǎo)致數(shù)據(jù)插不進(jìn)去。
1.查看數(shù)據(jù)庫(kù)編碼格式
show variables like '%char%'
2.修改服務(wù)器mysql配置文件
2.1mysql安裝路徑
which mysqld
image.png
2.2.查看讀取my.cnf文件順序
/usr/sbin/mysqld --verbose --help | grep -A 1 'Default options'
image.png
2.3進(jìn)入/etc/my.cnf修改配置文件
cd /etc
vim my.cnf
如果在上面路徑中沒有沒有找到my.cnf文件
可以直接更改
cd /etc/mysql/mysql.conf.d
vim mysqld.cnf
3.將如下配置加入到.cnf配置文件
[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'
4.重啟MySQL
第一種方式
service mysqld stop
service mysqld start
第二種方式
通過/etc/init.d/mysql執(zhí)行stop命令
通過/etc/init.d/mysql執(zhí)行start命令
我使用第二種方式 第一種報(bào)錯(cuò)我的報(bào)錯(cuò)
Failed to start mysqld.service: Unit mysqld.service not found.
5.登陸MySQL修改表結(jié)構(gòu)
alter database 數(shù)據(jù)庫(kù)名稱 character set =utf8mb4 collate=utf8mb4_unicode_ci;
alter table 表名 convert to character set utf8mb4 collate utf8mb4_unicode_ci;
alter table 表名 CHANGE 字段名 字段名varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
6.再次查看編碼
show variables like '%char%'
image.png
上述完成之后皆看,則可插入帶有emoji表情符號(hào)的昵稱