10.3.2 Набор символов и сортировка сервера
Сервер 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
mysqld --character-set-server=latin1
mysqld --character-set-server=latin1 \
--collation-server=latin1_swedish_ci
Один из способов изменения настроек — перекомпиляция. Чтобы изменить набор символов и сортировку по умолчанию сервера при построении из исходного кода, используйте опции DEFAULT_CHARSET и DEFAULT_COLLATION для CMake. Например:
cmake . -DDEFAULT_CHARSET=latin1
Или:
cmake . -DDEFAULT_CHARSET=latin1 \
-DDEFAULT_COLLATION=latin1_german1_ci
Как mysqld, так и CMake проверяют, что комбинация набора символов/сортировки является допустимой. В противном случае каждая программа отображает сообщение об ошибке и завершается.
Набор символов и сортировка сервера используются в качестве значений по умолчанию, если набор символов и сортировка базы данных не указаны в операторах CREATE DATABASE. Они не имеют другой цели.
Текущий набор символов и сортировка сервера могут быть определены по значениям системных переменных character_set_server и collation_server. Эти переменные могут быть изменены во время работы.
© 2025 Oracle
Licensed under the GPLv2 License.