📅  最后修改于: 2023-12-03 15:13:01.725000             🧑  作者: Mango
在 MySQL 8.0.0 版本中引入了新的排序规则 utf8mb4_0900_ai_ci,它是基于 Unicode Collation Algorithm (UCA) 和 Common Locale Data Repository (CLDR) 的一种排序规则。它的主要特点是能够更好地处理 Unicode 字符,例如支持基于注音或拼音的中文排序、支持德语字符的排序。
但是,由于它是一个相对较新的排序规则,与旧的排序规则不兼容,因此可能会导致一些应用程序在升级到 MySQL 8.0.0 版本之后出现问题。
如果您的应用程序在升级到 MySQL 8.0.0 版本后出现了以下异常,请考虑是否与新的排序规则有关:
如果发现出现以上问题,建议您检查应用程序中是否有与排序规则相关的代码,例如排序、索引等。
设置默认排序规则为旧的排序规则:
SET GLOBAL collation_server='utf8mb4_general_ci';
SET collation_database=DEFAULT;
SET collation_connection=DEFAULT;
将表的排序规则修改为 utf8mb4_0900_ai_ci:
ALTER TABLE my_table CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;
将字段的排序规则修改为 utf8mb4_0900_ai_ci:
ALTER TABLE my_table MODIFY COLUMN my_column VARCHAR(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;