文档首页
MySQL 8.4 参考手册
相关文档 下载本手册
PDF (US Ltr) - 39.9Mb
PDF (A4) - 40.0Mb
手册页 (TGZ) - 258.5Kb
手册页 (Zip) - 365.5Kb
信息 (Gzip) - 4.0Mb
信息 (Zip) - 4.0Mb


MySQL 8.4 参考手册  /  ...  /  服务器字符集和排序规则

12.3.2 服务器字符集和排序规则

MySQL 服务器具有服务器字符集和服务器排序规则。默认情况下,它们分别是 utf8mb4utf8mb4_0900_ai_ci,但可以在服务器启动时在命令行或选项文件中显式设置,并在运行时更改。

最初,服务器字符集和排序规则取决于启动 mysqld 时使用的选项。您可以使用 --character-set-server 设置字符集。除此之外,您还可以添加 --collation-server 设置排序规则。如果您没有指定字符集,则等同于 --character-set-server=utf8mb4。如果您只指定了字符集(例如,utf8mb4)但没有指定排序规则,则等同于 --character-set-server=utf8mb4 --collation-server=utf8mb4_0900_ai_ci,因为 utf8mb4_0900_ai_ciutf8mb4 的默认排序规则。因此,以下三个命令具有相同的效果:

mysqld
mysqld --character-set-server=utf8mb4
mysqld --character-set-server=utf8mb4 \
  --collation-server=utf8mb4_0900_ai_ci

更改设置的一种方法是重新编译。要在从源代码构建时更改默认服务器字符集和排序规则,请使用 CMakeDEFAULT_CHARSETDEFAULT_COLLATION 选项。例如:

cmake . -DDEFAULT_CHARSET=latin1

或者:

cmake . -DDEFAULT_CHARSET=latin1 \
  -DDEFAULT_COLLATION=latin1_german1_ci

mysqldCMake 都会验证字符集/排序规则组合是否有效。如果无效,则每个程序都会显示一条错误消息并终止。

如果在 CREATE DATABASE 语句中没有指定数据库字符集和排序规则,则服务器字符集和排序规则将用作默认值。它们没有其他用途。

可以通过 character_set_servercollation_server 系统变量的值确定当前的服务器字符集和排序规则。这些变量可以在运行时更改。