执行MySQL建表语句遇1253/1273编码排序规则错误求助
解决MySQL 5.7排序规则及配置文件相关问题
一、Error Code:1273(未知排序规则'utf8mb4_0900_ai_ci')
utf8mb4_0900_ai_ci是MySQL 8.0专属排序规则,5.7完全不支持。直接将建表语句中的该规则替换为5.7兼容的utf8mb4_general_ci或utf8mb4_unicode_ci即可。- 示例修正:把
COLLATE utf8mb4_0900_ai_ci改为COLLATE utf8mb4_general_ci
二、Error Code:1253(排序规则'utf8mb4_general_ci'对字符集'utf8'无效)
- 错误原因是字符集与排序规则不匹配:
utf8mb4系列排序规则只能搭配utf8mb4字符集,不能用于utf8字符集。 - 两种修正方案:
- 保留排序规则:将表/字段的字符集改为
utf8mb4; - 保留字符集:将排序规则改为
utf8_general_ci或utf8_unicode_ci。
- 保留排序规则:将表/字段的字符集改为
三、找不到my.cnf配置文件
- 不同系统的默认路径参考:
- Linux:常见路径为
/etc/my.cnf、/etc/mysql/my.cnf、/usr/local/mysql/my.cnf;若仍找不到,执行命令mysql --help | grep "Default options"查看配置文件加载顺序。 - Windows:默认在
C:\ProgramData\MySQL\MySQL Server 5.7\my.ini(注意ProgramData是隐藏文件夹)。
- Linux:常见路径为
- 若系统无配置文件,可手动在对应路径创建
my.cnf(Linux)或my.ini(Windows),添加基础字符集配置:[mysqld] character-set-server=utf8mb4 collation-server=utf8mb4_general_ci [client] default-character-set=utf8mb4
四、查看已安装的排序规则
- 在MySQL客户端执行以下命令:
-- 查看所有可用排序规则 SHOW COLLATION; -- 仅查看utf8mb4字符集对应的排序规则 SHOW COLLATION WHERE Charset = 'utf8mb4';
内容的提问来源于stack exchange,提问作者bobsmith76
相关产品推荐
相关产品推荐

