如何将Mysql 8.0中的数据导出到5.7版本?
如何将Mysql 8.0中的数据导出到5.7版本?
我想从Mysql 8.0.11中导出备份,并恢复到5.7.27版本。但在尝试恢复时出现以下错误:
错误 1273 (HY000),位于第25行:未知排序规则:'utf8mb4_0900_ai_ci'
然后我尝试使用兼容标志,以便在旧版本的MySQL数据库上更容易进行操作。
mysqldump --compatible=mysql4 --add-drop-table -u r00t -h xxx.eu-north-1.rds.amazonaws.com -p radius_db > ~/radius.sql
但这似乎也不起作用:
mysqldump: 无法执行'/*!40100 SET @@SQL_MODE='MYSQL40' */':
变量'sql_mode'不能设置为'MYSQL40'的值 (1231)
如果有任何建议,将不胜感激。
问题的原因是在从Mysql 8.0导出的.dump文件中使用了utf8mb4字符集和utf8mb4_0900_ai_ci校对规则,而Mysql 5.7不支持这些字符集和校对规则。解决方法是将.dump文件中的字符集和校对规则修改为utf8和utf8_general_ci。具体操作如下:
1.备份导出的.dump文件,以防万一。
2.打开.dump文件,将以下代码中的字符集和校对规则修改为utf8和utf8_general_ci:
ENGINE=MyISAM DEFAULT CHARSET=utf8mb4 COLLATE=utf8_general_ci;
修改为:
ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci;
3.重新导入修改后的.dump文件。
感谢,我最终将所有出现的utf8mb4_0900_ai_ci都修改为utf8mb4_general_ci,问题得到解决。