背景
今日想将本机的mysql(8.0)中的数据库文件导出到远程服务器中的mysql(5.6)中,刚开始用source 一直报一大串ERROR,由于数据量比较大,那就直接用图形化工具导吧,连接上远程数据库,建好库,然后运行SQL文件,依旧是unsuccess,如下:
[SQL] Query sql_bs start
[ERR] 1273 - Unknown collation: 'utf8mb4_0900_ai_ci'
[ERR] /*
Navicat Premium Data Transfer
找到最开始报错的地方,看到了这个问题,一看就是编码问题,将编码修改后,数据完美导入
问题
这个错误是没有“utf8mb4_0900_ai_ci”这个编码,因为我用的mysql版本是:5.6,这个版本的mysql没有这个编码方式。
如果你不知道你的mysql版本的话,可以百度查一下:mysql版本如何查询
这里提供一个方式,在Navicat软件中–>新建查询–>输入select version();
即可得到自己的mysql版本。
解决
第一种
升级mysql版本到8.0
但,一般情况下,都是因为特殊原因,不能改变版本,所以有第二种方法:
第二种
修改编码方式
打开sql文件,将文件中的所有utf8mb4_0900_ai_ci替换为utf8_general_ci,同时将utf8mb4替换为utf8。处理sql后重新在mysql库中导入sql文件即可。
结果