Navicat导入MySQL 的 sql 文件或 Transfer 数据时出现 Unknown collation: ‘utf8mb4_0900_ai_ci’ 导致数据导入不完全。完美解决!!

问题解决

  • Navicat导入MySQL 的 sql 文件或 Transfer 数据时出现 Unknown collation: 'utf8mb4_0900_ai_ci' 导致数据导入不完全。完美解决!!
  • 前言
  • 一、问题原因:
  • 2.我的云服据务器MySQL用的是 5.7.35 版本没有该排序规则,所以大家知道问题所在了吧!
  • 二、解决方案
  • 1.将原来的数据导出为 .sql 文件导出的 sql 文件使用记事本或其他可编辑工具打开,然后按住Ctrl + F 以win11为例点替换按钮将 utf8mb4_0900_ai_ci 替换成5.7版本可识别的 utf8mb4_general_ci 排序规则。
  • 2.全部更改好了之后就可以将数据导入到我们的低于8.0版本的数据库中了!
  • 总结



前言

因为某种原因我需要将电脑本地的MySQL (版本:8.0)数据库信息Transfer(转移)到我的云服务器MySQL(版本:5.7.35) 上面出现了如下的报错信息(未知的字符集排序规则)。

[ERR] 1273 - Unknown collation: ‘utf8mb4_0900_ai_ci’

后来在朋友的提醒下发现是因为数据库的版本不统一且 5.7.35 版本不支持 8.0 版本以上的 utf8mb4_0900_ai_ci 字符集排序规则,5.7 版本的MySQL 并未包含 8.0 版本及以上关于 utf8mb4 字符集的 utf8mb4_0900_ai_ci 排序规则,因此在进行数据转移和数据转储(8.0及以上向低版本)进行转移时要注意将字符集的排序规则更改为低版本可兼容的排序规则。

一、问题原因:

MySQL 8.0 版本加入了 utf8mb4_0900_ai_ci 的排序规则,低版本没有该排序规则因此出现了 1273 的报错。

mysql None 导入时变成0 mysql导入数据不全_排序规则


2.我的云服据务器MySQL用的是 5.7.35 版本没有该排序规则,所以大家知道问题所在了吧!


mysql None 导入时变成0 mysql导入数据不全_MySQL_02

二、解决方案

1.将原来的数据导出为 .sql 文件导出的 sql 文件使用记事本或其他可编辑工具打开,然后按住Ctrl + F 以win11为例点替换按钮将 utf8mb4_0900_ai_ci 替换成5.7版本可识别的 utf8mb4_general_ci 排序规则。

mysql None 导入时变成0 mysql导入数据不全_ci_03


2.全部更改好了之后就可以将数据导入到我们的低于8.0版本的数据库中了!


mysql None 导入时变成0 mysql导入数据不全_MySQL_04


总结

每天总结一点经验,都会有量变的结果!