ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

Mysql-Incorrect string value

2020-05-26 13:56:23  阅读:273  来源: 互联网

标签:Incorrect ci string utf8mb4 字符集 value COLLATE unicode mysql


【问题描述】

com.mysql.jdbc.MysqlDataTruncation: Data truncation: Incorrect string value: '\xF0\x9F\x8E\x89' for column 'title' at row 1

   

【问题原因】

数据库中有的表字段,有4个字节而mysql的utf8字符集最大只支持3个字节,因而出错。

   

【解决方法】

在mysql中有一个utf8字符集的超集utf8mb4,该字符集允许存储的字符最多为4个字节,那么它就可以满足对Emoji表情的存储。所以我们只需要将对应的字符集改为utf8mb4即可。

   

原有字符集可以通过以下方式查看:

SHOW VARIABLES WHERE Variable_name LIKE 'character\_set\_%' OR Variable_name LIKE 'collation%';

   

修改my.cnf配置

character_set_server=utf8mb4

collation-server=utf8mb4_unicode_ci

   

简单一点,这个时候可以直接将整库删除后重建。

如果库中已经有业务数据,可以通过以下方式修改。

   

-- 修改整库的字符集

ALTER DATABASE <database_name> CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci

   

-- 修改表的字符集

ALTER TABLE <table_name> CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

   

-- 修改单个字段的字符集

ALTER TABLE <table_name> CHANGE src_column_name <target_column_name> VARCHAR(600) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

 

标签:Incorrect,ci,string,utf8mb4,字符集,value,COLLATE,unicode,mysql
来源: https://www.cnblogs.com/liuxia912/p/12965075.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有