MySQL 保存 表情出错。 Incorrect string value: '\xF0\x9F\x8C\xB8'

Incorrect string value: ‘\xF0\x9F\x8C\xB8’ for column ‘nick_name’ at row 1

第一 、修改:数据库默认编码。重启数据库,
第二 、去掉 jdbc 连接里面的编码设置。
第三 、修改数据库表的字符设置。
第四 、修改对应表的字段的设置。

第一 、修改:数据库默认编码。重启数据库,


[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'

第二 、去掉 jdbc 连接里面的编码设置。

# 主数据源,默认的
spring.datasource.url=jdbc:mysql://localhost:3306/xxx

第三 修改数据库表的字符设置。
第四 修改对应表的字段的设置。(我就被这个坑了,调试了很久)

CREATE TABLE `user` (
  `uid` BIGINT(20) NOT NULL AUTO_INCREMENT,
  `nick_name` VARCHAR(50) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '昵称',
  `phone` VARCHAR(20)  DEFAULT NULL COMMENT '电话',
) ENGINE=InnoDB
AUTO_INCREMENT=33 CHARACTER SET 'utf8mb4' COLLATE 'utf8mb4_general_ci'

你可能感兴趣的:(mysql)