MySQL 8.0 报错 'Unknown collation: 'utf8mb4_0900_ai_ci'' 的解决方法
在 MySQL 8.0.0 版本之后,默认的字符集和校对规则已经变成了 utf8mb4_general_ci。如果您遇到了 Unknown collation: 'utf8mb4_0900_ai_ci' 的错误,只需要将 SQL 语句中所有 utf8mb4_0900_ai_ci 改为 utf8mb4_general_ci 即可。
例如,在以下的 SQL 语句中:
CREATE TABLE `admin` (
`Aid` int(0) NOT NULL AUTO_INCREMENT,
`Ausername` varchar(40) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
`Apassword` varchar(40) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '123',
...
);
您需要将 utf8mb4_0900_ai_ci 更改为 utf8mb4_general_ci,修改后的代码如下:
CREATE TABLE `admin` (
`Aid` int(0) NOT NULL AUTO_INCREMENT,
`Ausername` varchar(40) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
`Apassword` varchar(40) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '123',
...
);
进行更改后,该错误将不再出现。
关于 utf8mb4_general_ci 和 utf8mb4_0900_ai_ci:
utf8mb4_general_ci是 MySQL 8.0.0 版本中默认的字符集和校对规则,它可以支持更广泛的字符,包括表情符号等。utf8mb4_0900_ai_ci是一个较旧的校对规则,它在某些情况下可能无法完全兼容现代字符。
建议:
在 MySQL 8.0.0 版本及以上,建议使用 utf8mb4_general_ci 作为默认的字符集和校对规则,因为它更稳定且支持更多字符。
原文地址: https://www.cveoy.top/t/topic/oWu2 著作权归作者所有。请勿转载和采集!