Unknown collation: utf8mb4_0900_ai_ci解决方案和过程

本想对阿里云ecs做个扩盘,想把数据库做一下备份。


通过navicat数据传输报错信息如下。


Msg] [Dtf] Create table: `life_dream`

[Err] [Dtf] 1273 - Unknown collation: 'utf8mb4_0900_ai_ci'

[Err] [Dtf] Finished - Unsuccessfully




查找原因和解决方案如下:

由于这个表的排序规则为:'utf8mb4_0900_ai_ci' 而本地mysql版本比较较低。

而其他表排序规则是 :utf8_general_ci

所以将表life_dream 排序规则由utf8mb4_0900_ai_ci 修改为utf8_general_ci


修改语句:


alter table life_dream convert to character set utf8_general_ci;

执行报错信息如下: 

alter table life_dream convert to character set utf8_general_ci;

[Err] 1115 - Unknown character set: 'utf8_general_ci'


不去纠结,看其他修改方法。


用navicat来修改,设计表,全选字段,地步修改字符集为utf8   排序规则为:utf8_general_ci  最后保存。查看修改成功。

最有所有表都查了一下,发现排序规则由好几种  gbk_chinese_ci    utf8_general_ci  utf8mb4_0900_ai_ci   gb2312_chinese_ci

只有一个表是utf8mb4_0900_ai_ci


虽然已经修改该为utf8_general_ci ,在数据同步时依然报同样的错,Unknown collation: 'utf8mb4_0900_ai_ci'。


重启了mysql 依然报错。


------------------------------------------------------


上面方案无法解决,只能另想办法。




在数据传输时没有选择这个表,成功。


下面就差这个一个表的数据。通过转储sql文件试试。结果依然报错。


修改life_eam.sql里面的字符集信息,再次倒入依然报错失败。




----------------------------------------------------


转储sql不成功,那在看其他方法吧。


1.通过导出向导 导出到txt中。


2.本地数据库创建这个表。


3.通过导入向导,导入数据。数据丢失一部分。那这一部分可能是导入出错。


------------------------------------------------------------------


第三条路:


1.通过导出向导 导出到.xls中


2.本地数据库创建这个表。


3.然后通过导入向导,导入数据成功了。


-------------------------------------------------------------



搞了半天,高兴的是终于解决掉了。可以对阿里云ecs进行扩盘了。




相关标签:


评论: