mysql存表情emotion踩坑记录

项目场景:mysql 5.7.34储存表情的踩坑记录

问题描述:

项目中存到mysql的字符串中有表情字符串,查了很多资料都需要把mysql的编码变换成utf8mb4。 但是我把数据库的字段都变成utf8mb4编码格式后还是不能存字符串。明明编码格式都换了还是不行。


原因分析:

    数据库的编码格式是utf8mb4 数据库表的编码格式是utf8mb4 数据库表的字段编码格式是utf8mb4

解决方案:

1.先使用下面的命令查看mysql的编码格式
SHOW VARIABLES WHERE Variable_name LIKE character_set_% OR Variable_name LIKE collation%;

查看对应的字段的编码格式是否是下面 如果上面查询结果不一样就去配置mysql,下面是我的配置

#################主要看这个里面的##########################
[client]

port=3306

default-character-set=utf8mb4

[mysql]
default-character-set=utf8mb4


[mysqld]

port=3306

#character_set_server=utf8mb4

character-set-client-handshake = FALSE

character-set-server=utf8mb4

collation-server = utf8mb4_unicode_ci

init_connect=SET NAMES utf8mb4

############################################################

#这些配置不重要,主要是看上面的配置
basedir=D:mysqlmysql-5.7.34-winx64
#解压目录

datadir=D:mysqlmysql-5.7.34-winx64data

#解压目录下data目录

sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES


[WinMySQLAdmin]

D:mysqlmysql-5.7.34-winx64inmysqld.exe

配置完mysql一定要重启

查阅资料到这里就可以储存表情了。但是我的还是不行,于是我接着排查。 发现自己的数据库表的字段的编码还是utf8,所以我把字段的编码格式改完以后就可以了

由于我的数据库的表是早就建好的,后来才改的编码格式,虽然改变了数据库和数据库表的编码格式,但是表的字段的编码格式没有改过来导致一直失败

经验分享 程序员 微信小程序 职场和发展