复制粘贴一时爽,出现问题耗时长,处理Mysql报错:SQL state [HY000]; error code [1366]

非常简单的插入语句,英文是OK的,但是中文就报错:

org.springframework.jdbc.UncategorizedSQLException: 
### Error updating database.  Cause: java.sql.SQLException: Incorrect string value: '\xE8\xB7\x91\xE6\xAD\xA5' for column 'category' at row 1
### The error may exist in file [*****************Mapper.xml]
### The error may involve com.xx.xx.mapper.xxxMapper.add-Inline
### The error occurred while setting parameters
### SQL: INSERT INTO `xx`(`xx`,`xx`,`xx`,`xx`,`xx`)         VALUES (?,?,?,?,?);
### Cause: java.sql.SQLException: Incorrect string value: '\xE8\xB7\x91\xE6\xAD\xA5' for column 'category' at row 1
; uncategorized SQLException; SQL state [HY000]; error code [1366]; Incorrect string value: '\xE8\xB7\x91\xE6\xAD\xA5' for column 'category' at row 1; nested exception is java.sql.SQLException: Incorrect string value: '\xE8\xB7\x91\xE6\xAD\xA5' for column 'category' at row 1

参考网上的图,借用一下。

在这里插入图片描述

 按照网上的方法进行排查说是字符集设置问题,但是我检查了一下,是OK的呢。

那到底是啥问题呢,不停的在连接配置那里修改尝试,都是失败的,多次失败花掉了不少时间,终于准备静下心来好好看看了。参考了如下文章:

MySQL:ERROR 1366 (HY000)错误解决 - 程序员大本营 (pianshen.com)

 第一步,检查:

一.检查数据表所有字段的状态:SHOW FULL COLUMNS FROM user;

神奇的事,居然是

在这里插入图片描述

 可数据库是utf8呢,为啥这个表是latin呢?

突然就知道原因了,这个表是从其他数据库复制过来的,复制的那个库的编码是latin的,我的天。

这篇文章记录下来,就是提醒下这种场景,复制数据表的时候会把数据表的编码格式一起复制过来。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值