主页 > 知识库 > MySQL生僻字插入失败的处理方法(Incorrect string value)

MySQL生僻字插入失败的处理方法(Incorrect string value)

热门标签:地图标注培训 手机用地图标注工具 昆明智能外呼系统中心 电销机器人说明书 长安区违法建房地图标注 南宋地图标注黄河华山 智能电销机器人靠谱么 电销机器人公众号推送 安国在哪里办理400电话

最近,业务方反馈有个别用户信息插入失败,报错提示类似"Incorrect string value:"\xF0\xA5 ..... " 看这个提示应该是字符集不支持某个生僻字造成的。

下面是在虚拟机里复现的场景:

step1、模拟原始表结构字符集环境:

use test;
CREATE TABLE `t1` (
 `id` int(10) NOT NULL AUTO_INCREMENT,
 `real_name` varchar(255) CHARACTER SET utf8 DEFAULT '' COMMENT '姓名',
 `nick` varchar(100) COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '昵称',
 PRIMARY KEY (`id`)
) ENGINE=InnoDBAUTO_INCREMENT=10 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='会员卡';

step2、插入生僻字(使用sqlyog模拟):

1、先模拟线上环境,设置下字符集:

2、插入生僻字(生僻字可以参考:http://www.qqxiuzi.cn/zh/hanzi-unicode-bianma.php?zfj=kzbks=24E20js=257E3)

我们尝试插入王(在word里面按住alt,输入152964)。可以看到插入失败了。

step3、修改real_name的字符集:

use test;

alter table t1 change real_name real_name varchar(255) CHARACTER SET utf8mb4 DEFAULT '' COMMENT '姓名' ;

如果是线上大表的话,可以使用pt-osc来处理,命令如下:

pt-online-schema-change -uroot -h localhost --alter=" change real_name real_name varchar(255) CHARACTER SET utf8mb4 DEFAULT '' COMMENT '姓名' " D=test, t=t1 --no-check-replication-filters --alter-foreign-keys-method=auto --recursion-method=none --quiet --charset=utf8mb4 --dry-run
pt-online-schema-change -uroot -h localhost --alter=" change real_name real_name varchar(255) CHARACTER SET utf8mb4 DEFAULT '' COMMENT '姓名' " D=test, t=t1 --no-check-replication-filters --alter-foreign-keys-method=auto --recursion-method=none --quiet --charset=utf8mb4 --execute

step4、再次插入实验:

1、先设置下字符集:

2、再次插入,可以看到插入成功了。

在命令行里面查询也是没有乱码了:

到此就完成了,大家可以参考一下。

您可能感兴趣的文章:
  • MySQL存储表情时报错:java.sql.SQLException: Incorrect string value:‘\xF0\x9F\x92\xA9\x0D\x0A...’的解决方法
  • MySQL抛出Incorrect string value异常分析
  • MySql 错误Incorrect string value for column
  • Mysql中关于Incorrect string value的解决方案

标签:潜江 长沙 吉安 武汉 东莞 南昌 合肥 江门

巨人网络通讯声明:本文标题《MySQL生僻字插入失败的处理方法(Incorrect string value)》,本文关键词  MySQL,生僻,字,插入,失,败的,;如发现本文内容存在版权问题,烦请提供相关信息告之我们,我们将及时沟通与处理。本站内容系统采集于网络,涉及言论、版权与本站无关。
  • 相关文章
  • 下面列出与本文章《MySQL生僻字插入失败的处理方法(Incorrect string value)》相关的同类信息!
  • 本页收集关于MySQL生僻字插入失败的处理方法(Incorrect string value)的相关信息资讯供网民参考!
  • 企业400电话

    智能AI客服机器人
    15000

    在线订购

    合计11份范本:公司章程+合伙协议+出资协议+合作协议+股权转让协议+增资扩股协议+股权激励+股东会决议+董事会决议

    推荐文章