[ERR] 1273 - Unknown collation: ‘utf8mb4_0900_ai_ci‘

[ERR] 1273 - Unknown collation: ‘utf8mb4_0900_ai_ci’
**写在前面:**因为需要将本地Mysql中的一个数据库迁移到服务器的Mysql,于是我按照日常操作,打开了Navicat,在本地Mysql中找到了我需要迁移的数据库classai_2.0_test,又按照日常操作转储了一波SQL文件到本地,得到了classai_2.0_test.sql文件。接下来我开心的在Navicat上打开了服务器的Mysql,新建了一个数据库classai_3.0,然后右键运行了一波class_2.0_test.sql。就在我们以为要万事大吉的时候,给我来了一波“[ERR] 1273 - Unknown collation: ‘utf8mb4_0900_ai_ci’”。很难受。
**原因分析:**因为我本地的Mysql是8.0版本的,而服务器上的Mysql版本是5.0版本的,因为是高版本导入到低版本,引起1273错误。看到这个原因之后肯定就有人想看看到底是不是本地的Mysql比服务器上的Mysql版本高,查看Mysql版本也很简单,在Navicat中找到本地一个数据库,右键——>新建查询
[ERR] 1273 - Unknown collation: ‘utf8mb4_0900_ai_ci‘_第1张图片
然后输入:select version() from dual;
[ERR] 1273 - Unknown collation: ‘utf8mb4_0900_ai_ci‘_第2张图片
这里可以看到我本地的Mysql版本是8.0.27,同理可以查询到服务器上的Mysql版本。
**解决办法:**解决办法就是把打开sql文件把其中的utf8mb4_0900_ai_ci替换为utf8_general_ci
utf8mb4替换为utf8,一开始我脑残了半天我到哪去打开sql文件,在电脑的命令窗口吗,后来我又去navicat中把classai_2.0_test中把每一张表的编码和排序规则都改成utf8和utf8_general_ci,发现还是不行。后来突然脑子不抽了,我转存出来的不就是sql文件嘛,于是我找到转储出来的classai_2.0_test.sql的位置用vscode打开了它。
[ERR] 1273 - Unknown collation: ‘utf8mb4_0900_ai_ci‘_第3张图片
然后crtl+f查找utf8mb4和utf8mb4_0900_ai_ci进行替换。
[ERR] 1273 - Unknown collation: ‘utf8mb4_0900_ai_ci‘_第4张图片
替换之后记得crtl+s保存一波,做完以上操作再迁移到服务器上的Mysql中就不会出错了。

你可能感兴趣的:(ci/cd,服务器,mysql)