解决 Error 3988 (HY000): Conversion from collation utf8mb3_general_ci into utf8mb4_0900_ai_ci impossible for parameter

4 min read

该错误意味着您正尝试将使用 utf8mb3_general_ci 排序规则的参数转换为 utf8mb4_0900_ai_ci 排序规则,但无法进行此转换。

要解决此问题,您可以尝试以下操作:

  1. 将数据库表格转换为 utf8mb4 字符集和排序规则:您可以使用以下命令将数据库中的所有表格转换为 utf8mb4 字符集和排序规则:

    ALTER DATABASE database_name CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci;

  2. 修改参数的排序规则:您可以尝试将参数的排序规则更改为 utf8mb3_general_ci,以匹配源参数的排序规则。

    ALTER DATABASE database_name MODIFY parameter_name CHAR(30) COLLATE utf8mb3_general_ci;

请注意,在 MySQL 8.0 之前,utf8mb3 是 MySQL 默认的字符集和排序规则。从 MySQL 8.0 开始,utf8mb4 成为了默认值。如果您在升级 MySQL 版本时遇到此类问题,请务必检查数据库字符集和排序规则是否已正确设置。