服务器字符集和校验规则
MySQL Server具有服务器字符集和服务器校验规则。这些可以在服务器启动时在命令行或选项文件中设置,并在运行时更改。
最初,服务器字符集和校验规则取决于启动mysqld时使用的选项。您可以使用--character-set-server
该字符集。连同它,您可以添加--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
更改设置的一种方法是重新编译。要从源代码构建时更改默认服务器字符集和校验规则,请对CMake使用DEFAULT_CHARSET
和DEFAULT_COLLATION
选项。例如:
cmake . -DDEFAULT_CHARSET=latin1
要么:
cmake . -DDEFAULT_CHARSET=latin1 \ -DDEFAULT_COLLATION=latin1_german1_ci
双方的mysqld和CMake的验证字符集/归类组合是有效的。如果不是,每个程序将显示一条错误消息并终止。
如果未在CREATE DATABASE
语句中指定数据库字符集和校验规则,则将服务器字符集和校验规则用作默认值。他们没有其他目的。
当前服务器字符集和校验规则可以从character_set_server
和collation_server
系统变量的值确定。这些变量可以在运行时更改。