Documentation Home
MySQL 8.3 Reference Manual
Related Documentation Download this Manual
PDF (US Ltr) - 40.8Mb
PDF (A4) - 40.9Mb
Man Pages (TGZ) - 294.0Kb
Man Pages (Zip) - 409.0Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb
Excerpts from this Manual

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

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

cmake . -DDEFAULT_CHARSET=latin1

或:

cmake . -DDEFAULT_CHARSET=latin1 \
  -DDEFAULT_COLLATION=latin1_german1_ci

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

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

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