[导读]原来数据库结构CREATE TABLE `user` ( `id` int(11) NOT NULL AUTO_INCREMENT, `user_nickname` varchar(255) CH
原来数据库结构
CREATE TABLE `user` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`user_nickname` varchar(255) CHARACTER SET utf8 DEFAULT NULL COMMENT '抽奖用户昵称'
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=85 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
user_nickname 字段非 utf8mb4 保存表情符号报错。
insert into user (user_nickname) values (?)
java.lang.RuntimeException: org.hibernate.exception.GenericJDBCException: Incorrect string value: 'xF0x9Fx92xA5' for column 'user_nickname' at row 1
org.hibernate.exception.GenericJDBCException: Incorrect string value: 'xF0x9Fx92xA5' for column 'user_nickname' at row 1
at org.hibernate.exception.internal.StandardSQLExceptionConverter.convert(StandardSQLExceptionConverter.java:54)
at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:125)
at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:110)
at org.hibernate.engine.jdbc.internal.proxy.AbstractStatementProxyHandler.continueInvocation(AbstractStatementProxyHandler.java:129)
解决办法:
修改字段编码类型为 utf8mb4
sql 语句: ALTER TABLE user MODIFY COLUMN user_nickname varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '用户昵称';
本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
来源:https://juejin.cn/post/6860252224930070536| 背景日志是 mysql 数据库的重要组成部分,记录着数据库运行期间各种状态信息。mysql日志主要包括错误日志、查询日志、慢查...
关键字:
mysql
mysql的一行记录,最终肯定是存储在磁盘上,也就是肉眼可见的文件上,今天我们的目标很简单,就是看看它到底是怎么存的。当然还有一个更重要的目标,就是以这个为引子,带大家完全通过一手资料,来揭秘这个问题的答案。所以大家阅读...
关键字:
mysql
什么Mysql的事务?事务的四大特性?事务带来的什么问题?你详细了解过MVCC吗?它是怎么工作的?
关键字:
mysql
嵌入式
想进大厂,mysql不会那可不行,来接受mysql面试挑战吧,看看你能坚持到哪里?
关键字:
mysql
嵌入式
最近,在开发一个分库分表中间件,由于功能需求,需要分析MySQL协议,发现网上对于MySQL协议分析的文章大部分都过时了,原因是分析的MySQL版本太低了。怎么办?于是乎,我便硬着头皮开始啃MySQL源码,经过两个多月的...
关键字:
mysql
嵌入式
想进大厂,Mysql不会那可不行,来接受Mysql面试挑战吧,看看你能坚持到哪里?
关键字:
mysql
嵌入式
Explain被称为执行计划,在语句之前增加explain关键字,MySQL会在查询上设置一个标记,模拟MySQL优化器来执行SQL语句,执行查询时,会返回执行计划的信息,并不执行这条SQL。
关键字:
mysql
嵌入式
什么是事务?事务是应用程序中一系列严密的操作,所有操作必须成功完成,否则在每个操作中所作的所有更改都会被撤消。也就是事务具有原子性,一个事务中的一系列的操作要么全部成功,要么一个都不做。
关键字:
mysql
嵌入式
此文不会事无巨细的从select的用法开始讲解mysql,主要针对的是开发人员需要知道的一些MySQL的知识点,主要包括索引、事务、优化等方面,以在面试中高频的问句形式给出答案。
关键字:
mysql
嵌入式
MySQL死锁异常是我们经常会遇到的线上异常类别,一旦线上业务日间复杂,各种业务操作之间往往会产生锁冲突,有些会导致死锁异常。这种死锁异常一般要在特定时间特定数据和特定业务操作才会复现,并且分析解决时还需要了解MySQL...
关键字:
mysql
嵌入式
本篇文章详细讲解了Optimizer Trace展示的所有相关信息,并且辅之一些具体使用案例。
关键字:
mysql
嵌入式
最近,有小伙伴出去面试,面试官问了这样的一个问题:如何查询和删除MySQL中重复的记录?相信对于这样一个问题,有不少小伙伴会一脸茫然。那么,我们如何来完美的回答这个问题呢?今天,我们就一起来探讨下这个经典的MySQL面试...
关键字:
mysql
嵌入式
“ 在 MySQL 中设计表的时候,MySQL 官方推荐不要使用 uuid 或者不连续不重复的雪花 id(long 形且唯一,单机递增),而是推荐连续自增的主键 id,官方的推荐是 auto_increment。那么,为...
关键字:
mysql
嵌入式
想进大厂,mysql不会那可不行,来接受mysql面试挑战吧,看看你能坚持到哪里? 1. 能说下myisam 和 innodb的区别吗? myisam引擎是5.1版本之前的默认引擎,支持全文检索、压缩、空间函数等,但是不...
关键字:
mysql
日志是mysql数据库的重要组成部分,记录着数据库运行期间各种状态信息。mysql日志主要包括错误日志、查询日志、慢查询日志、事务日志、二进制日志几大类。作为开发,我们重点需要关注的是二进制日志(binlog)和事务日志...
关键字:
mysql
MySQL利用binlog恢复误操作数据
在人工手动进行一些数据库写操作的时候(比方说数据订正),尤其是一些不可控的批量更新或删除,通常都建议备份后操作。不过不怕万一,就怕一万,
关键字:
mysql
binlog
MySQL 数据库的开发人员宣布,该团队将停止使用并替换掉数据库源代码和文档中的 master、slave、blacklist(黑名单)和 whitelist(白名单)等术语。在官方发布的博客文章中,
关键字:
mysql
数据库
MySQL是由瑞典MySQL AB开发的小型关系型开源数据库管理系统,MySQL目前广泛用于Internet上的中小型网站。由于其规模小,速度快和总体拥有成本低,尤其是其开放源代码功能,许多中小型网站选择MySQL作为其...
关键字:
Linux
mysql
mariadb