前言

由于市面上还有不少程序不支持MYSQL8.0,所以今天把数据库从8.0降到5.7,但是数据库导入时出现了错误提示:#1273 - Unknown collation: 'utf8mb4_0900_ai_ci'
2025-08-05T01:15:14.png
经过一番搜索发现问题核心在于MySQL版本不兼容导致的排序规则缺失。utf8mb4_0900_ai_ci 是MySQL 8.0+ 独有的排序规则,而我降级的是5.7,所以出现了不识别的错误。

解决方案

修改排序规则

CREATE TABLE `typecho_comments` (
  -- 字段定义保持不变 --
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
  • 修改点:

COLLATE=utf8mb4_0900_ai_ci → COLLATE=utf8mb4_general_ci

  • 优势:

**100%兼容所有MySQL 5.5+版本
保留utf8mb4字符集(支持4字节Emoji/特殊字符)**

  • 注意事项:

general_ci与0900_ai_ci排序结果略有差异(如德语ß字符),但对中文无影响

降级字符集(兼容旧系统)

CHARSET=utf8 COLLATE=utf8_general_ci 
  • 适用场景:MySQL ≤ 5.5 且无Emoji存储需求
  • 缺点:
    • utf8实际为3字节编码,不支持🤔等4字节字符
    • 存储空间利用率低于utf8mb4

版本兼容对照表

MySQL版本推荐字符集配置Emoji支持
≥8.0utf8mb4 + 0900_ai_ci✔️
5.5~5.7utf8mb4 + general_ci✔️
≤5.5utf8 + general_ci
最后修改:2025 年 08 月 05 日
如果觉得我的文章对你有用,请随意赞赏