MySQL 创建库字符集与排序规则完整笔记

在这里插入图片描述

在这里插入图片描述

CREATE DATABASE `db02`
  DEFAULT CHARACTER SET utf8mb4
  DEFAULT COLLATE utf8mb4_0900_ai_ci;

在这里插入图片描述


MySQL 创建库字符集与排序规则完整笔记

1. 查看数据库字符集与排序规则

### 查看所有库的默认字符集/排序规则

SELECT * FROM information_schema.SCHEMATA;

查看指定库的创建语句

SHOW CREATE DATABASE db01\G

2. 使用 utf8mb4 + utf8mb4_0900_ai_ci 创建数据库

MySQL 8.0 默认字符集 = utf8mb4
默认排序规则 = utf8mb4_0900_ai_ci

标准创建语句:

CREATE DATABASE `db02`
  DEFAULT CHARACTER SET utf8mb4
  DEFAULT COLLATE utf8mb4_0900_ai_ci;

3. 报错:Unknown collation ‘utf8mb4_0900_ai_ci’

你在创建 mbmdb 时遇到错误:

ERROR 1273 (HY000): Unknown collation: 'utf8mb4_0900_ai_ci'

原因:

你所连接的 MySQL 实例 并没有支持 utf8mb4_0900_ai_ci 排序规则
可能是因为:

  • MySQL 版本低(如 5.7)
  • 兼容模式(如 MariaDB)
  • 会话连接到了旧实例
  • socket 连接错实例

4. 后来创建 db02 又成功

你执行:

CREATE DATABASE `db02`
  DEFAULT CHARACTER SET utf8mb4
  DEFAULT COLLATE utf8mb4_0900_ai_ci;

成功创建!

说明你后来连接的 MySQL 实例 版本是 8.0+,支持 utf8mb4_0900_ai_ci


5. 信息架构查看结果(关键)

你的查询:

select * from information_schema.SCHEMATA;

结果显示:

SCHEMA_NAMEDEFAULT_CHARACTER_SET_NAMEDEFAULT_COLLATION_NAME
db01utf8mb3utf8mb3_general_ci
db02utf8mb4utf8mb4_0900_ai_ci

说明:

  • db01 是旧库(utf8mb3,8.0 之前旧字符集)
  • db02 用的是 8.0 的默认 utf8mb4_0900_ai_ci

6. SHOW CREATE DATABASE 说明

CREATE DATABASE `db01` /*!40100 DEFAULT CHARACTER SET utf8mb3 */ /*!80016 DEFAULT ENCRYPTION='N' */

说明:

  • db01 是由 旧版本 MySQL 创建,字符集是 utf8mb3(历史字符集)
  • 并没有设置新的 utf8mb4 排序规则

7. 如何正确创建两个库(mbmdb、mbmlog)

最终建议你直接使用 MySQL 8.0 标准写法

CREATE DATABASE `xxx`
  DEFAULT CHARACTER SET utf8mb4
  DEFAULT COLLATE utf8mb4_0900_ai_ci;



8. 如何检查当前 MySQL 实例是否支持 0900 排序规则

SHOW COLLATION LIKE 'utf8mb4_0900%';

有结果 → 支持
无结果 → 不支持(旧 MySQL / MariaDB)


9. 总结

  • utf8mb4 + utf8mb4_0900_ai_ci 是 MySQL 8.0 最推荐组合
  • Unknown collation 的原因是你最开始连接到了不支持该排序规则的实例
  • 后面重新连接 MySQL 后创建成功(db02)说明环境正确
  • 推荐所有新库都统一使用 utf8mb4 0900 排序规则
  • 老库 db01 使用 utf8mb3,是历史字符集,不建议继续用

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值