mysql 导入数据 1273 - Unknown collation: ‘utf8mb4_0900_ai_ci‘

文章讲述了在MySQL中使用utf8mb4字符集遇到错误1273,原因是collation问题。建议将字符集和排序规则改为utf8mb4_general_ci以支持表情符号和通用排序。解决方案包括修改字段和表的排序规则。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言: mysql 导入数据 遇到这个错误 1273 - Unknown collation: 'utf8mb4_0900_ai_ci'   具体原因没有深究  但应该是设计数据库的   字符集类型会出现这个问题 例如: char varchar text.....

utf8mb4 类型可以存储表情   在现在这个时代会用很多  以后会用的更多  所以不建议改成 utf8

1. 设计数据库的时候 字符集设计的是 utf8mb4 (可以存储表情 特殊符号等)   然后排序规则就用的默认的了

2. 解决方法也很简单 可以选择这个 utf8mb4_general_ci    算是通用 排序规则  把字段的排序规则 和表的排序规则都该成这个就行了 

sql预览

### 解决Navicat中避免使用`utf8mb4_0900_ai_ci`字符集的方法 当遇到在Navicat迁移MySQL数据过程中找不到编码并报错的情况,可以采取以下措施来规避`utf8mb4_0900_ai_ci`字符集的问题。 #### 修改SQL文件中的字符集定义 如果目标数据库版本较低(如MySQL 5.7),其中并不支持`utf8mb4_0900_ai_ci`这种较新的排序规则,则可以在执行导入操作之前先修改待导入的SQL脚本。具体做法是从源码层面移除或更改这些不兼容项: ```sql -- 原始语句可能形似这样 CREATE TABLE example ( id INT NOT NULL, name VARCHAR(255), PRIMARY KEY (id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci; -- 调整后的语句应改为如下形式 CREATE TABLE example ( id INT NOT NULL, name VARCHAR(255), PRIMARY KEY (id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; ``` 通过上述方式调整表结构创建语句中的字符集及其对应的校对规则设置[^1]。 #### 设置默认字符集与校对规则 为了防止新建立的对象自动采用不受支持的字符集配置,在连接到服务器前可以通过编辑会话参数的方式指定全局性的默认值。这一步骤通常是在启动工具时完成,也可以在每次新建查询窗口时手动设定: ```sql SET NAMES 'utf8'; SET character_set_client = utf8; SET character_set_results = utf8; SET collation_connection = utf8_general_ci; ``` 以上命令序列能够确保当前对话环境下的字符串处理均遵循较为通用的标准[^3]。 另外值得注意的是,尽管存在历史原因使得部分场景下推荐优先考虑`utf8mb4`而非传统的`utf8`,但在特定上下文中二者之间的差异或许并不会带来实质性的影响;因此针对某些旧版系统而言适当回退至后者不失为一种可行的选择[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值