# 10.3.2 服务器字符集和排序规则
MySQL 服务器有一个服务器字符集和一个服务器排序规则。默认情况下,这些是utf8mb4
和utf8mb4_0900_ai_ci
,但它们可以在服务器启动时在命令行或选项文件中显式设置,并在运行时更改。
最初,服务器字符集和排序规则取决于您在启动时使用的选项mysqld.您可以使用--字符集服务器
对于字符集。除此之外,您还可以添加--collation-server
为整理。如果不指定字符集,那和说的一样--character-set-server=utf8mb4
.如果您只指定一个字符集(例如,utf8mb4
) 但不是排序规则,这和说的一样--character-set-server=utf8mb4
--collation-server=utf8mb4_0900_ai_ci
因为utf8mb4_0900_ai_ci
是默认排序规则utf8mb4
.因此,以下三个命令都具有相同的效果:
mysqld
mysqld --character-set-server=utf8mb4
mysqld --character-set-server=utf8mb4 \
--collation-server=utf8mb4_0900_ai_ci
更改设置的一种方法是重新编译。要在从源构建时更改默认服务器字符集和排序规则,请使用DEFAULT_CHARSET
和DEFAULT_COLLATION
选项制作.例如:
cmake . -DDEFAULT_CHARSET=latin1
要么:
cmake . -DDEFAULT_CHARSET=latin1 \
-DDEFAULT_COLLATION=latin1_german1_ci
两个都mysqld和制作验证字符集/排序规则组合是否有效。如果没有,每个程序都会显示一条错误消息并终止。
如果未指定数据库字符集和排序规则,则使用服务器字符集和排序规则作为默认值创建数据库
陈述。他们没有其他目的。
当前服务器字符集和排序规则可以从character_set_server
和collation_server
系统变量。这些变量可以在运行时更改。