网站首页 > 博客文章 正文
一:异常信息:errorCode:1366
Caused by: java.sql.SQLException: Incorrect string value: '\xE7\xAE...' for column 'description' at row 1
二:异常原因:字符集冲突
mysql insert入库的时候,由于插入数据编码与数据库字段字符集不一致,导致数据无法插入。
三:追本溯源
在mysql数据库中执行show character set,可以看到不同的字符集的最大长度不同。
如果只插入utf8编码数据,数据库表中字段字符集是latin。(查询字段字符集方法:show full columns from user;)
如果最大长度为3的utf8字符集存储到最大长度为1的latin数据库字段中,数据会被截断,无法正常插入,导致异常。
四:解决办法
修改数据库的字符集编码
MySQL配置文件在Windows下叫my.ini,在MySQL的安装根目录下;在Linux下叫my.cnf,该文件位于/etc/my.cnf。
(1)window服务器
mysql数据库的配置文件my.ini,此文件放在mysql根目录下。在此文件下查找default-character-set属性,并将其值更改为utf8:default-character-set = utf8
(2)linux服务器
修改my.cnf
vi /etc/my.cnf
在[client]下添加
default-character-set=utf8
在[mysqld]下添加
default-character-set=utf8
在新的版本5.5以上,如果这样修改的话,会造成无法启动的错误,
报的是pid文件更新问题。
经过查看mysql日志,如下:
是default-character-set参数不可用。
新版本mysql配置方法是
在[mysqld]下把default-character-set=utf8换成character-set-server=utf8就可以了
重启mysql可以使用 sudo /etc/init.d/mysql restart
注意修改数据库编码以后,需要把以前的数据库删除掉,重新建立。
五:补充知识
(1)字符(Character)是指人类语言中最小的表义符号。例如'A'、'B'等;
给定一系列字符,对每个字符赋予一个数值,用数值来代表对应的字符,这一数值就是字符的编码(Encoding)。例如,我们给字符'A'赋予数值0,给字符'B'赋予数值1,则0就是字符'A'的编码;
给定一系列字符并赋予对应的编码后,所有这些字符和编码对组成的集合就是字符集(Character Set)。例如,给定字符列表为{'A','B'}时,{'A'=>0, 'B'=>1}就是一个字符集;
(2)字符序(Collation)是指在同一字符集内字符之间的比较规则;
确定字符序后,才能在一个字符集上定义什么是等价的字符,以及字符之间的大小关系;
每个字符序唯一对应一种字符集,但一个字符集可以对应多种字符序,其中有一个是默认字符序(Default Collation);
MySQL中的字符序名称遵从命名惯例:以字符序对应的字符集名称开头;以_ci(表示大小写不敏感)、_cs(表示大小写敏感)或_bin(表示按编码值比较)结尾。例如:在字符序``utf8_general_ci''下,字符``a''和``A''是等价的;
(3)MySQL字符集设置
系统变量:
– character_set_server:默认的内部操作字符集
– character_set_client:客户端来源数据使用的字符集
– character_set_connection:连接层字符集
– character_set_results:查询结果字符集
– character_set_database:当前选中数据库的默认字符集
– character_set_system:系统元数据(字段名等)字符集
猜你喜欢
- 2024-09-23 MySQL最重要的日志-binlog详解(mysqlbinlog日志内容)
- 2024-09-23 mysql 错误:packets out of order.
- 2024-09-23 MySQL 性能优化:8 种常见 SQL 错误用法
- 2024-09-23 常见的 MySQL 异常及处理方法(mysql故障处理)
- 2024-09-23 详解蓝鲸部署常见报错及解决方案汇总
- 2024-09-23 MySQL数据库“十宗罪”【十大经典错误案例】
- 2024-09-23 MySQL 面试选择题15道(答案解释)(mysql面试题及答案整理)
- 2024-09-23 mysql使用过程的错误记录(五)(mysql常见错误)
- 2024-09-23 mysql 使用过程的错误记录(一)(mysql语句错误)
- 2024-09-23 MYSQL存储引擎InnoDB(六十三):SQL压缩语法警告和错误
你 发表评论:
欢迎- 最近发表
-
- 给3D Slicer添加Python第三方插件库
- Python自动化——pytest常用插件详解
- Pycharm下安装MicroPython Tools插件(ESP32开发板)
- IntelliJ IDEA 2025.1.3 发布(idea 2020)
- IDEA+Continue插件+DeepSeek:开发者效率飙升的「三体组合」!
- Cursor:提升Python开发效率的必备IDE及插件安装指南
- 日本旅行时想借厕所、买香烟怎么办?便利商店里能解决大问题!
- 11天!日本史上最长黄金周来了!旅游万金句总结!
- 北川景子&DAIGO缘定1.11 召开记者会宣布结婚
- PIKO‘PPAP’ 洗脑歌登上美国告示牌
- 标签列表
-
- ifneq (61)
- messagesource (56)
- aspose.pdf破解版 (56)
- promise.race (63)
- 2019cad序列号和密钥激活码 (62)
- window.performance (66)
- qt删除文件夹 (72)
- mysqlcaching_sha2_password (64)
- ubuntu升级gcc (58)
- nacos启动失败 (64)
- ssh-add (70)
- jwt漏洞 (58)
- macos14下载 (58)
- yarnnode (62)
- abstractqueuedsynchronizer (64)
- source~/.bashrc没有那个文件或目录 (65)
- springboot整合activiti工作流 (70)
- jmeter插件下载 (61)
- 抓包分析 (60)
- idea创建mavenweb项目 (65)
- vue回到顶部 (57)
- qcombobox样式表 (68)
- vue数组concat (56)
- tomcatundertow (58)
- pastemac (61)
本文暂时没有评论,来添加一个吧(●'◡'●)