情景
今天在使用Navcat在本地数据库创建完成表之后转存了表结构sql文件,在远程服务器上同样使用Navcat连接之后尝试运行该sql文件,但是报如下错误:
[ERR] 1273 - Unknown collation: 'utf8mb4_0900_ai_ci'
原因
我在本地Mysql版本为8.0版,而远程服务器上跑的Mysql版本为5.x版本;因此在本地生成转储文件的数据库版本为8.0的,要导入sql文件的数据库版本版本过低不支持这个字段,因为是高版本导入到低版本,引起1273错误
解决方案
打开转存的sql文件,将文件中的出现的
`type` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL
#替换为
`type` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
也就是全部替换
utf8mb4_0900_ai_ci
为utf8_general_ci
utf8mb4
为utf8
保存后再次运行sql文件,运行OK