MySQL生僻字插入失败如何解决

  介绍

这篇文章将为大家详细讲解有关MySQL生僻字插入失败如何解决,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

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

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

使用测试;
  创建表的t1 (
  “id”int(10)不是零AUTO_INCREMENT,
  ‘real_name varchar(255)默认字符集utf8 & # 39; & # 39;评论& # 39;姓名& # 39;,
  “尼克”varchar(100)核对utf8mb4_unicode_ci默认& # 39;& # 39;评论& # 39;昵称& # 39;,
  主键(“id”)
  )引擎=InnoDBAUTO_INCREMENT=10默认字符集=utf8mb4整理=utf8mb4_unicode_ci评论=& # 39;会员卡& # 39;;

步骤2,插入生僻字(使用sqlyog模拟):

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

 MySQL生僻字插入失败如何解决

2,插入生僻字(生僻字可以参考:http://www.qqxiuzi.cn/zh/hanzi-unicode-bianma.php?zfj=kzb& ks=24 e20& js=257 e3)

 MySQL生僻字插入失败如何解决

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

,我们修改real_name的字符集:

使用测试;
  
  alter table t1改变real_name real_name varchar(255)字符集utf8mb4默认& # 39;& # 39;评论& # 39;姓名& # 39;,

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

 pt-online-schema-change -uroot - h localhost,改变=?改变real_name real_name varchar(255)字符集utf8mb4默认& # 39;& # 39;评论& # 39;姓名& # 39;“;D=测试,t=t1——no-check-replication-filters alter-foreign-keys-method汽车——recursion-method==没有——安静——charset=utf8mb4——即将
 pt-online-schema-change -uroot - h localhost,改变=?改变real_name real_name varchar(255)字符集utf8mb4默认& # 39;& # 39;评论& # 39;姓名& # 39;“;D=测试,t=t1——no-check-replication-filters alter-foreign-keys-method汽车——recursion-method==没有——安静——charset=utf8mb4——执行

第四,再次插入实验:

1,先设置下字符集:

 MySQL生僻字插入失败如何解决

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

 MySQL生僻字插入失败如何解决

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

 MySQL生僻字插入失败如何解决

MySQL生僻字插入失败如何解决