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

最近,业务方反馈有个别用户信息插入失败,报错提示类似"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、插入生僻字(生僻字可以参考:www.qqxiuzi.cn/zh/hanzi-unicode-bianma.php?zfj=kzb&ks=24E20&js=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如何导入生僻字_MySQL插入生僻字失败的处理方法(图)相关推荐

  1. sae mysql 同步本地_MYSQL入门之三_将本地MySQL数据导入SAE数据库_MySQL

    bitsCN.com MYSQL入门之三_将本地MySQL数据导入SAE数据库 1. MySQL字符集 MySQL的默认字符集是latin1,将本地MySQL库导出成sql,再导入到SAE的MySQL ...

  2. mysql批量导入txt数据_MySQL批量导入Excel、txt数据

    我想Excel是当今最大众化的批量数据管理软件了吧,所以我们会经常涉及到将Excel中数据导入到MySQL中的工作.网上有一些关于直接将Excel导入MySQL的教程,不知道是我安装的office不对 ...

  3. MySQL命令导入表数据_Mysql命令行导入sql数据

    mysqldump  是在  操作系统命令行下运行的,不是在 MySQL 命令行下运行的. 登陆数据库: 登陆本地mysql : mysql -h localhost -u root -p123456 ...

  4. mysql命令导入导出数据_mysql命令行导入和导出数据

    MySQL中导出CSV格式数据的SQL语句样本如下: select * from test_info into outfile '/tmp/test.csv' fields terminated by ...

  5. mysql命令导入导出数据库_MYSQL命令行导入导出数据库详解

    Mysql命令行导入数据库: 1,将要导入的.sql文件移至bin文件下,这样的路径比较方便 2,同上面导出的第1步 3,进入MySQL:mysql -u 用户名 -p 如我输入的命令行:mysql ...

  6. mysql sql导入sql文件_MySQL导入sql 文件的5大步骤

    以下的文章主要介绍的是MySQL导入sql 文件,即MySQL数据库导入导出sql 文件的实际操作步骤,我们主要是将其分成5大步骤对其进行讲述,如果你对其有兴趣的话你就可以点击以下的文章进行观看了. ...

  7. mysql 增加字段位置靠前_mysql 字段指定值靠前排序方法,多字段排序排序方法

    背景:SEO下选择某查询条件 查询展示信息为装修设计师以及设计师作品.设计师原型设计为:选择某风格 例如:简约,则列表出现拥有简约风格的设计师信息以及该设计师类型为简约的作品(3条靠前记录) 浏览原型 ...

  8. mysql快速导入导出数据库_mysql快速导出与导入

    前言:目前各种客户端越来越智能,数据库也随之越来越大,如果要做个什么数据库备份,如果数据库较小还好说,数据库随随便便几十个G,光导出就要耗费大量时间,更别说导入,那么有什么办法可以快速导出,导入呢? ...

  9. mysql批量导入 导出数据_MySQL批量导入导出数据

    批量向mysql插入(文本)数据的方法有以下3种: 方法1. 可以先将要插入的数据统一保存在 .sql 文件中,各个insert 语句直接用分号分开.之后执行命令: source .sql 文件即可. ...

最新文章

  1. c# 实现自动搜索串口列表并刷新
  2. 设计模式四:简单工厂
  3. ZYAR20A 亚克力2驱 蓝牙 298寻迹避障机器人 —— 小车前后左右综合实验
  4. 机器学习-cs229-线性回归-梯度下降法
  5. 物联网商机迸发 LPWAN芯片现身 本文转自d1net(转载)
  6. SpringBoot2 配置多数据源,整合MybatisPlus增强插件
  7. 信息学奥赛一本通 1962:【13NOIP普及组】表达式求值 | 洛谷 P1981 [NOIP2013 普及组] 表达式求值
  8. 使用canvas制作一个移动端画板
  9. 科研|诺奖得主本庶佑: 不要相信论文里写的东西,《自然》《科学》这些杂志上的观点有九成是不正确的...
  10. 第十章:XAML标记扩展(三)
  11. 智能电视也需“杀毒”
  12. 菜鸟学习初级教程-----强烈推荐(看完后成黑客拉)
  13. 解决旅游行业营销人员痛点的作品策划
  14. 电子凸轮应用追剪算法详细图解(附PLC完整源代码)
  15. Ironic 裸金属管理服务
  16. 安得广厦千万间,大赚天下寒士俱欢颜
  17. Flex 布局在IE浏览器下的兼容问题
  18. java例题 汽油检测
  19. 小程序swiper月份日历滑动
  20. python疫情大数据可视化

热门文章

  1. PTA:最佳情侣身高差 (10分)(c++版)
  2. Duplicate named routes definition:
  3. DDR3 MIG上板测试记录
  4. 字节飞书提前批一面(凉的透透的)
  5. Solaris 问答集
  6. 全藏字【藏文字】的生成算法设计
  7. 体验 服务器正在维护升级中 给大,阴阳师体验服9月30日维护 花合战更新
  8. 不要妄图一夜实现「智能」,这里有AI工业落地几乎必遇的「深坑」
  9. 2020计算机考研985,2020考研:这几所985一个A+学科快来看看吧
  10. eclipse 左侧导航栏不见怎么办