12.3.2 Набор символов и сортировка сервера
Сервер MySQL имеет набор символов сервера и сортировку сервера. По умолчанию они являются utf8mb4 и utf8mb4_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_ci — это сортировка по умолчанию для utf8mb4. Следовательно, следующие три команды имеют одинаковый эффект:
mysqld
mysqld --character-set-server=utf8mb4
mysqld --character-set-server=utf8mb4 \
--collation-server=utf8mb4_0900_ai_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.