你在将 MySQL 数据库导入
MariaDB 时遇到了 #1273 错误,核心原因是 MariaDB 不识别 MySQL 8.0 特有的
utf8mb4_0900_ai_ci排序规则(collation),导致导入失败。
utf8mb4_0900_ai_ci是 MySQL 8.0 版本新增的排序规则(基于 Unicode 9.0),而 MariaDB 采用了不同的排序规则体系,并不支持这个规则,因此导入时会提示 “未知的 collation”。
- 用文本编辑器(Notepad++、VS Code、Sublime 等)打开你从 MySQL 导出的
.sql文件;
- 全局替换所有内容:
- 查找:
utf8mb4_0900_ai_ci
- 替换为:
utf8mb4_unicode_ci(MariaDB 完全支持,且排序逻辑最接近原规则);
- 若还出现
utf8mb4_0900_as_ci,替换为utf8mb4_unicode_520_ci;
- 保存文件后,重新导入 MariaDB 即可。
如果是 Linux 服务器,可直接用
sed命令一键替换(避免手动打开大文件):
sed -i 's/utf8mb4_0900_ai_ci/utf8mb4_unicode_ci/g' 你的导出文件.sql
sed -i '' 's/utf8mb4_0900_ai_ci/utf8mb4_unicode_ci/g' 你的导出文件.sql
如果还能重新从 MySQL 导出数据,可在导出时直接指定兼容 MariaDB 的排序规则,从源头避免问题:
mysqldump -u 你的MySQL用户名 -p --collation=utf8mb4_unicode_ci 你的数据库名 > 兼容版导出文件.sql
执行后输入 MySQL 密码,生成的 SQL 文件会直接使用 MariaDB 兼容的排序规则。
修改后的 SQL 文件重新导入 MariaDB 时,不会再出现#1273 - 未知的collation错误,数据可正常导入。
- 报错核心原因:
utf8mb4_0900_ai_ci是 MySQL 8.0 特有规则,MariaDB 不支持;
- 关键解决动作:将 SQL 文件中的
utf8mb4_0900_ai_ci替换为utf8mb4_unicode_ci;
- 替换方式:手动编辑文件、Linux/macOS 用 sed 命令、或重新导出时指定兼容规则。
© 版权声明
文章版权归作者所有,部分内容可能由 AI 生成,不能完全保障真实。