【开发踩坑】 MySQL不支持特殊字符(表情)插入问题

背景

在这里插入图片描述
线上功能报错:

Cause:java.sql.SQLException:Incorrect string value:'xFO\x9F\x9FxBO'
for column 'comment'at row 1 uncategorized SQLException;
SQL state [HY000]:error code [1366]

排查

初步觉得是编码问题(utf8 — utf8mb4)
参考上个踩坑:
生僻字插入MySQL失败
找到插入的字符:

🟰

这个字符一看就很优秀啊
先去复现一下
but:
dba协助排查、测试:特殊字符插入都是成功的:
在这里插入图片描述
这里留意配置:

  • 数据库版本:5.7
  • connector版本:6.0.6
  • 数据库设置:utf8

再看这个字符空间:
在这里插入图片描述
字符占用4字节,老的utf8是不支持的,只有mb4才支持
所以问题变成了,为什么这里的设置失效了;
服务器的配置本身就是 utf8mb4,所以是没问题的;那么问题多半出在客户端:
所以现在就是连接池版本问题:
connector版本:6.0.6

解决

被ChatGPT科普:
有的数据库连接版本是不支持utf8mb4的:
参考:https://zhuanlan.zhihu.com/p/351071361?utm_id=0
最终解决方案:
升级mysql-connector-java的版本到:
8.0.13

修复

test验证:插入成功

复盘

首先根据

  • mysql版本(一般查看对应的表和字段,只要其支持utf8mb4字符集的话,那么就要看客户端的版本了)
  • Java版本
    选择对应的
  • mysql-connector-java 版本
    之后根据
  • mysql-connector-java版本
    选择对应的解决方案

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/843543.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

昇思25天学习打卡营第17天|LLM-基于MindSpore的GPT2文本摘要

打卡 目录 打卡 环境准备 准备阶段 数据加载与预处理 BertTokenizer 部分输出 模型构建 gpt2模型结构输出 训练流程 部分输出 部分输出2(减少训练数据) 推理流程 环境准备 pip install -i https://pypi.mirrors.ustc.edu.cn/simple mindspo…

Web前端Promise

Promise介绍与使用 Promise是什么? 1.抽象表达: Promise是一门新的技术(ES6规范)Promise是JS中进行异步编程的新解决方案备注:旧方案是单纯使用回调函数 2.具体表达: 从语法上来说:Promise…

多层全连接神经网络(六)---各种优化算法的变式

梯度下降算法原理此处不做过多说明 梯度下降法的变式 1. SGD 随机梯度下降法是梯度下降法的一个小变形,就是每次使用一批(batch)数据进行梯度的计算,而不是计算全部数据的梯度,因为现在深度学习的数据量都特别大,所以每次都计算…

Lua基础知识入门

1 基础知识 标识符:标识符的定义和 C语言相同:字母和下划线_ 开头, 下划线_ 大写字母一般是lua保留字, 如_VERSION 全局变量:默认情况下,变量总是认为是全局的,不需要申明,给一个变…

docker默认存储地址 var/lib/docker 满了,换个存储地址操作流程

1. 查看docker 存储地址 docker info如下 var/lib/docker2、查看内存大小 按需执行 df -h 找超过100M的大文件 find / -type f -size 100M -exec ls -lh {} \; df -Th /var/lib/docker 查找这个文件的容量 df -h 查找所有挂载点 du -hs /home/syy_temp/*1、df -h 2、sud…

Linux网络——套接字与UdpServer

目录 一、socket 编程接口 1.1 sockaddr 结构 1.2 socket 常见API 二、封装 InetAddr 三、网络字节序 四、封装通用 UdpServer 服务端 4.1 整体框架 4.2 类的初始化 4.2.1 socket 4.2.2 bind 4.2.3 创建流式套接字 4.2.4 填充结构体 4.3 服务器的运行 4.3.1 rec…

全国区块链职业技能大赛国赛考题区块链产品需求分析与方案设计

任务1-1:区块链产品需求分析与方案设计 本任务需要依据项目背景完成需求分析与方案设计,具体要求如下: 依据给定区块链食品溯源系统的业务架构图,对考题进行业务分析,尽可能多的去考虑一个业务系统所需要的模块,使用Visio或思维导图工具展现本系统的基本设计概念和处理流…

基于ffmepg的视频剪辑

1.ffmpeg命令实现视频剪辑 FFmpeg是一个非常强大的视频处理工具,可以用来剪辑视频。以下是一个基本的FFmpeg命令行示例,用于剪辑视频: $ ffmpeg -i ./最后一滴水.mp4 -ss 0:0:20 -t 50 -c copy output.mp4-i ./最后一滴水.mp4 输入文件  …

图像生成(Text-to-Image)发展脉络

这篇博客对 图像生成(image generation) 领域的经典工作发展进行了梳理,包括重要的一些改进,目的是帮助读者对此领域有一个整体的发展方向把握,并非是对每个工作的详细介绍。 脉络发展(时间顺序&#xff0…

探究大语言模型(LLM)漏洞和安全优秀实践

你可能已听说过LLM强势亮相,至少ChatGPT就是代表。 大语言模型(LLM)指语言处理模型。这类模型经过训练,可以执行各种各样的语言任务:翻译、文本生成和问题回答等。 有几个LLM家族和架构,最著名的是GPT(生成式预训练Transformer)…

Grafana :利用Explore方式实现多条件查询

背景 日志统一推送到Grafana上管理。所以,有了在Grafana上进行日志搜索的需求,而进行日志搜索通常需要多条件组合。 解决方案 通过Grafana的Explore的方式实现多条件查询。 直接看操作步骤: 在主页搜索框中输入“Explore” 进入这个界面…

python—日期相差多少天(PythonTip)

[题目描述] 编写一个程序,计算两个日期之间的天数。 导入datetime模块。定义函数calculate_days_between()数,其中有两个参数:(date1, date2),类型为字符串,格式为YYYY-MM-DD。在函数内,将字符串转换为date…

全面战争模拟器免费下载地址,纯分享

全面战争模拟器以其独特的物理引擎和搞笑的战斗场面吸引了大量玩家,并在游戏社区中赢得了极高的评价。它不仅提供了丰富的策略性玩法,还通过滑稽的视觉效果和搞笑的战斗带来了极大的娱乐性。游戏的沙盒模式和自定义功能更是让玩家能够充分发挥创意&#…

磁盘的作业

1、新添加一块硬盘,大小为5g,给这块硬盘分一个mbr格式的主分区(大小为3g),给此主分区创建ext2的文件系统,挂载到/guazai1目录,并写入文件内容为"this is fist disk"文件名为1.txt的文件。 [rootwyk ~]# fdis…

02线性表 - 链表

这里是只讲干货不讲废话的炽念,这个系列的文章是为了我自己以后复习数据结构而写,所以可能会用一种我自己能够听懂的方式来描述,不会像书本上那么枯燥和无聊,且全系列的代码均是可运行的代码,关键地方会给出注释^_^ 全…

【时时三省】(C语言基础)函数和数组

山不在高,有仙则名。水不在深,有龙则灵。 ——csdn时时三省 函数 跟数学里面的函数很相似 数组 一组相同类型的元素的集合 比如把5个整形1-5存起来 int arr[10]={1,2,3&#x…

逻辑门的题目怎么做?

FPGA语法练习——二输入逻辑门,一起来听~~ FPGA语法练习——二输入逻辑门 题目介绍:F学社-全球FPGA技术提升平台 (zzfpga.com)

高功能自闭症:挑战与潜能并存

高功能自闭症是一种复杂的神经发育障碍,其患者通常在认知、语言和行为方面存在发育障碍,但保持相对正常的社交互动和自理能力。这种疾病由大脑神经发育异常引起,涉及神经递质、脑结构和功能连接等多个方面,导致信息处理和整合困难…

WebRTC音视频-前言介绍

目录 效果预期 1:WebRTC相关简介 1.1:WebRTC和RTC 1.2:WebRTC前景和应用 2:WebRTC通话原理 2.1:媒体协商 2.2:网络协商 2.3:信令服务器 效果预期 1:WebRTC相关简介 1.1&…

SpringCloud的认识和初步搭建

目录 一.认识SpringCloud 二.SpringCloud的部署 2.1开发环境 2.2数据库的建立 2.3SpringCloud的部署 第一步: 创建Maven项目 第二步:完善pom文件 第三步:创建两个子项目 第四步:声明项目依赖以及构建插件 第五步&#xf…