MySQL 5.7发布说明
MySQL服务器有一个服务器字符集和一个服务器排序。默认情况下,它们是latin1
和latin1_swedish_ci
,但它们可以在服务器启动时在命令行或选项文件中显式设置,并在运行时更改。
最初,服务器字符集和排序规则取决于启动时使用的选项mysqld.您可以使用——character-set-server
用于字符集。除此之外,您还可以添加——collation-server
排序。如果你不指定一个字符集,那就等于说——character-set-server = latin1
.如果只指定一个字符集(例如,latin1
),但不是排序,也就是说——character-set-server = latin1
——collation-server = latin1_swedish_ci
因为latin1_swedish_ci
默认的排序规则是latin1
.因此,下面三个命令的效果是一样的:
Mysqld——character-set-server=latin1 \——collate -server=latin1_swedish_ci . conf . txt
更改设置的一种方法是重新编译。若要在从源代码构建时更改默认服务器字符集和排序规则,请使用DEFAULT_CHARSET
和DEFAULT_COLLATION
选项CMake.例如:
cmake。-DDEFAULT_CHARSET = latin1
或者:
cmake。-DDEFAULT_CHARSET = latin1 \ -DDEFAULT_COLLATION = latin1_german1_ci中的一个
这两个mysqld和CMake检查字符集/排序规则组合是否有效。如果不是,每个程序都会显示一条错误消息并终止。
中未指定数据库字符集和排序规则时,将使用服务器字符集和排序规则作为默认值创建数据库
语句。它们没有其他目的。
的值确定当前服务器字符集和排序规则character_set_server
和collation_server
系统变量。这些变量可以在运行时更改。