java.sql.SQLException: Data truncation: Incorrect string value: '\xE5\x91\xA8\xE6\x9D\xBE' for column 'cname' at row 1 Query
在将项目上传到服务器时,发生这样的错误,总结了一下。
环境Centos7+tomcat7+Mariadb数据库
首先mysql -uroot -p 输入密码
然后查询数据库当前码表状态
show variables like '%char%';
结果如下

可以看出Character_set_database=latinl和Character_set_results=latinl这个两个非utf8格式
一般来说,如果为了防止数据库乱码,或者无法插入,适合采用全utf8格式 但是有可能存在存储空间损耗的问题
那么修改这两个非utf8的参数
修改mariadb数据库的参数
1.打开server.cnf文件
vi /etc/my.cnf.d/server.cnf
2.在server.cnf文件的【mysqld】标签中添加如下内容

init_connect='SET collation_connection = utf8_unicode_ci'
init_connect='SET NAMES utf8'
character-set-server=utf8
collation-server=utf8_unicode_ci
skip-character-set-client-handshake
3.打开 mysql-clients.cnf文件
vim /etc/my.cnf.d/ mysql-clients.cnf
4.在[mysql]标签下添加
default-character-set=utf8
最后看数据库连接配置
重启mariadb数据库
systemctl restart mariadb
查看数据库连接情况

如果这样依旧不能解决乱码问题 那么就设置,那么就可能是连接的问题
查看连接的字符码格式
show variables like "collation_%";

设置为UTF8
SET NAMES 'utf8';

然后如果是数据库设置编码的问题或者表设置编码的问题
这里可以看到有一个test数据库

设置test数据库的编码格式
ALTER database test character set utf8;
然后可以看到一个test表,设置表的编码格式
ALTER table test character set utf8;
最后查看表的编码格式

可以看到尽管外部是utf8设置的表的字符码,但是内部行的数据仍然为latin1的格式
所以这个时候修改行的字符为
alter table test change `cname` `cname` varchar() character set utf8;
最后插入一条中文数据尝试

数据库能够正常使用,而且在服务器上做测试和window上的实验结果相同
最后总结数据库存储过程中如果出现乱码或其他异常问题问题
1.数据库设置不正确产生的乱码或者错误
2.存储过程中的乱码 数据库或者表或者行的字符码不正确
3.操作数据库的url不正确或者sql语句存在问题等
java.sql.SQLException: Data truncation: Incorrect string value: '\xE5\x91\xA8\xE6\x9D\xBE' for column 'cname' at row 1 Query的更多相关文章
- django更换数据库时提示"django.db.utils.InternalError: (1366, "Incorrect string value: '\\xE7\\x94\\xA8\\xE6\\x88\\xB7' for column 'name' at row 1")"
问题提出 昨天在运行django时,初始化使用的是自带的数据库,后来更换mysql数据库,数据库同步之后,打开mysql无法添加数据,插入数据时,提示django.db.utils.InternalE ...
- java.sql.SQLException: Data truncation: Truncated incorrect DOUBLE value
mysql 报这个异常:java.sql.SQLException: Data truncation: Truncated incorrect DOUBLE value update 表名 set c ...
- mysql报错:java.sql.SQLException: Incorrect string value: '\xE4\xB8\x80\xE6\xAC\xA1...' for column 'excelName' at row 1
一.问题 用Eclipse做项目时候报错 java.sql.SQLException: Incorrect string value: '\xE4\xB8\x80\xE6\xAC\xA1...' fo ...
- MySQL 执行插入报错 - Incorrect string value: '\xE4\xB8\xAD\xE6\x96\x87' for column 'name' at row 1
报错的原因就是在执行插入时对Name这个字段被赋予了错误的字符串值:’\xE4\xB8\xAD\xE6\x96\x87’ 实际上就函数里面的变量接收到的值编码格式跟它定义的不一致. 使用navica ...
- java.sql.SQLException: Incorrect string value: '\xE5\xBC\xA0\xE9\x9B\xB7' for column 'content' at row 1
这个问题主要是由于该字段及腹肌编码不正确导致的,一般新建的表如果没设置就会是latin1字符集需要将表改为utf8字符集,再将报错的列的字符集改为utf8即可,修改命令如下所示: ALTER TABL ...
- mysql 插入汉字异常: Incorrect string value: '\xE8\xB0\xA2\xE9\x9D\x99' for column 'uname' at row 1
该字段编码问题,不支持中文,设置支持中文即可
- Incorrect string value: '\xE8\xAF\xAD\xE6\x96\x87' for column 'name' at row 1
报错的原因就是在执行插入时对Name这个字段被赋予了错误的字符串值:’\xE4\xB8\xAD\xE6\x96\x87’ 实际上就函数里面的变量接收到的值编码格式跟它定义的不一致. 使用navicat ...
- Mysql向新建表中插入数据, Incorrect string value: '\xE5\xBC\xA0\xE4\xB8\x89' for column 'UserName' at row 1
在本地通过MYSQL创建测试表 CREATE Table User ( UserId int not NULL PRIMARY KEY auto_increment, //主键自增 UserName ...
- nested exception is java.sql.SQLException: Incorrect string value: '\xE7\x99\xBB\xE9\x99\x86...' for column 'image' at row 1
HTTP Status 500 - Hibernate operation: could not insert: [cn.itcast.shop.product.vo.Product]; uncate ...
随机推荐
- Windows下如何使用Tensorflow Object Detection API
https://blog.csdn.net/mr_jor/article/details/79071963 记得要把model里的research文件夹和research\slim 文件夹 添加到PY ...
- netty源码解解析(4.0)-19 ChannelHandler: codec--常用编解码实现
数据包编解码过程中主要的工作就是:在编码过程中进行序列化,在解码过程中从Byte流中分离出数据包然后反序列化.在MessageToByteEncoder中,已经解决了序列化之后的问题,ByteToMe ...
- ranger-hdfs 插件组权限测试
当hdfs文件对外是公开的则该其他用户就算没有配置相关的权限一样可以进行相关的操作.当hdfs文件对外权限是没有开放的,其他用户若需要进行相关操作则需要通过Ranger进行相关权限的配置. 首先 / ...
- Contour 学习笔记(一):使用 Contour 接管 Kubernetes 的南北流量
原文链接:Contour 学习笔记(一):使用 Contour 接管 Kubernetes 的南北流量 在 Kubernetes 中运行大规模以 Web 为中心的工作负载,最关键的需求之一就是在 L7 ...
- Java - 集合之间的关系和区别
1.Java集合关系图: 2.List.Map.Set区别: ① List ArrayList LinkedList Vector Advantage Search Insert.Delete Syn ...
- Windows上提高工作效率的神器推荐
Everything 下载地址:http://www.voidtools.com/ 功能:硬盘文件搜索,比起电脑自带的文件搜索,效率提高不是一丁半点.而且Everything还支持正则表达式,小巧而快 ...
- Java Builder 模式,你搞明白了么?
Builder 模式定义 Builder 模式中文叫作建造者模式,又叫生成器模式,它属于对象创建型模式,是将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示.建造者模式是一步一步 ...
- spring-cloud-kubernetes的服务发现和轮询实战(含熔断)
本文是<spring-cloud-kubernetes实战系列>的第四篇,主要内容是在kubernetes上部署两个应用:Web-Service和Account-Service,通过spr ...
- 步入vue.js世界
一.遇见vue.js 1.1 Vue.js是什么? Vue.js 是一套用于构建用户界面的渐进式框架,Vue 的核心库只关注视图层,不仅易于上手,还便于与第三方库或既有项目整合.Vue.js通过简单的 ...
- C# 生产者与消费者模式
情景:一个线程不断获取数据,另一个线程不断处理这些数据. 常规方法:数据列表加锁,两个线程获取锁,拿到操作权:类似代码如下:(不推荐) static void Main(string[] args) ...