【问题解决】MySQL5.5 向MySQL数据库中插入汉字时,提示:Incorrect string value: '\Xe7\x8E...' for column 'XXX' at row 1

本文涉及的产品
RDS MySQL DuckDB 分析主实例,集群系列 4核8GB
RDS AI 助手,专业版
RDS DuckDB + QuickBI 企业套餐,8核32GB + QuickBI 专业版
简介: 【问题解决】MySQL5.5 向MySQL数据库中插入汉字时,提示:Incorrect string value: '\Xe7\x8E...' for column 'XXX' at row 1

一、问题描述:

20170715171851372.png


更纠结的是,只在这个库中不能存入汉字,其他的库都没问题。


二、解决过程


2.1百度过程中遇到的小错误:


ERROR 1366: Incorrectstring value: '\xF0\x9D\x8C\x86' forcolumn。虽然都是因为插入汉字时,提示的问题,但这串Bytes的第一个字节是\xF0意味着这是一个四字节的UTF-8编码。所以要看清,自己的报错到底是哪种!


2.2百度到看似有效,让我小兴奋的解决方法:


  https://wenku.baidu.com/view/0a892b62a45177232f60a2a8.html


 http://www.cnblogs.com/softidea/archive/2016/08/16/5775467.html


   还要其他的零散的评论,大多是让我改MySQL5.5安装路径下的my.ini配置文件,


[client]


default-character-set=utf8


[server]


character_set_server=utf8


但在我这里均没有奏效。。。


即使在MySQL-命令列界面,修改了类型,mysql>SET character_set_database=utf8;

20170715172133360.png


关闭,重启MySQL后,再执行

mysql>showvariables like 'character_set_%';会发现之前的修改并没有保存。

20170715172317631.png


向表中重新输入数据,仍然报错



正解:

2.3 修改整个库,整张表的字符集类型:



//修改数据库


mysql>alter database name character set utf8;


//修改表


alter table 表名 convert to character set gbk;



2.4简单粗暴的解决,但有效:


   一个一个的修改表的字段类型,


            字符集都由Latin改成utf8。

20170715172602641.png


  最后,保存中文,成功了。


  当然,也可以执行SQL语句修改字符集类型,也是有效的。


http://blog.csdn.net/ch717828/article/details/41357431


三、总结:


别人总结行之有效的方法,用在自己的问题上,未必奏效。

 在我这里没有效果的方法,在你那里未必失效。

最重要的是,掌握原理!敬请期待下篇博客:

【总结】错误解析和字符集

 遇到此问题的小伙伴,可参照以上链接,解决自己的问题。

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
相关文章
|
关系型数据库 MySQL Docker
MySQL 5.7 timestamp类型设置default value为'0000-00-00 00:00:00'报错的解决方法
MySQL 5.7 timestamp类型设置default value为'0000-00-00 00:00:00'报错的解决方法
679 0
|
SQL 关系型数据库 MySQL
MySQL 8.0报错--1118-Row size too large. The maximum row size for the used table type, not counting BLOBs,is 8126,
MySQL 8.0报错--1118-Row size too large. The maximum row size for the used table type, not counting BLOBs,is 8126,
2146 56
MySQL 8.0报错--1118-Row size too large. The maximum row size for the used table type, not counting BLOBs,is 8126,
|
JSON Java 关系型数据库
Java更新数据库报错:Data truncation: Cannot create a JSON value from a string with CHARACTER SET 'binary'.
在Java中,使用mybatis-plus更新实体类对象到mysql,其中一个字段对应数据库中json数据类型,更新时报错:Data truncation: Cannot create a JSON value from a string with CHARACTER SET 'binary'.
1669 4
Java更新数据库报错:Data truncation: Cannot create a JSON value from a string with CHARACTER SET 'binary'.
|
关系型数据库 MySQL
解决MySQL insert出现Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘xxx‘ at row 1
解决MySQL insert出现Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘xxx‘ at row 1
1514 2
|
数据采集 关系型数据库 MySQL
大数据-业务数据采集-FlinkCDC The MySQL server is not configured to use a ROW binlog_format
大数据-业务数据采集-FlinkCDC The MySQL server is not configured to use a ROW binlog_format
254 1
|
关系型数据库 MySQL
mysql导入报错1067 – Invalid default value for
mysql导入报错1067 – Invalid default value for
859 5
|
SQL 关系型数据库 MySQL
已解决:mysql报错> 1067 - Invalid default value for ‘comment_date‘ [DTF] 2> wp_links: Getting
已解决:mysql报错> 1067 - Invalid default value for ‘comment_date‘ [DTF] 2> wp_links: Getting
316 5
|
SQL 关系型数据库 MySQL
【错误】mysql 出现 “1067 - Invalid default value for ‘UPDATE_TIME‘ “ 错误提示的解决办法
【错误】mysql 出现 “1067 - Invalid default value for ‘UPDATE_TIME‘ “ 错误提示的解决办法
1145 1
|
8月前
|
缓存 关系型数据库 BI
使用MYSQL Report分析数据库性能(下)
使用MYSQL Report分析数据库性能
517 158
|
8月前
|
关系型数据库 MySQL 数据库
自建数据库如何迁移至RDS MySQL实例
数据库迁移是一项复杂且耗时的工程,需考虑数据安全、完整性及业务中断影响。使用阿里云数据传输服务DTS,可快速、平滑完成迁移任务,将应用停机时间降至分钟级。您还可通过全量备份自建数据库并恢复至RDS MySQL实例,实现间接迁移上云。

热门文章

最新文章

推荐镜像

更多