因为之前设计的时候使用的是utf-8编码,最多三个字节,而Emoji表情是四个字节,所以导致数据插不进去。
1.查看数据库编码格式
show variables like '%char%'
2.修改服务器mysql配置文件
2.1mysql安装路径
which mysqld
2.2.查看读取my.cnf文件顺序
/usr/sbin/mysqld --verbose --help | grep -A 1 'Default options'
2.3进入/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执行stop命令
通过/etc/init.d/mysql执行start命令
我使用第二种方式 第一种报错我的报错
Failed to start mysqld.service: Unit mysqld.service not found.
5.登陆MySQL修改表结构
alter database 数据库名称 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%'
上述完成之后,则可插入带有emoji表情符号的昵称