Spec-Zone.ru › MySQL 8.4

12.15 Настройка кодировки символов

Сервер MySQL имеет встроенную по умолчанию кодировку символов и сортировку. Чтобы изменить эти значения по умолчанию, используйте параметры --character-set-server и --collation-server при запуске сервера. См. Раздел 7.1.7, «Параметры командной строки сервера». Сортировка должна быть допустимой сортировкой для заданной кодировки символов по умолчанию. Чтобы определить доступные сортировки для каждой кодировки символов, используйте оператор SHOW COLLATION или запросите данные из таблицы INFORMATION_SCHEMA COLLATIONS.

Если вы попытаетесь использовать кодировку символов, которая не скомпилирована в ваш двоичный файл, могут возникнуть следующие проблемы:

  • Если ваша программа использует неправильный путь для определения места хранения кодировок символов (обычно это каталог share/mysql/charsets или share/charsets в каталоге установки MySQL), эту проблему можно решить, используя параметр --character-sets-dir при запуске программы. Например, чтобы указать каталог, который будет использоваться клиентами MySQL, перечислите его в группе [client] вашего файла параметров. Приведенные здесь примеры показывают, как это может выглядеть для Unix или Windows соответственно:

    [client]
    character-sets-dir=/usr/local/mysql/share/mysql/charsets
    
    [client]
    character-sets-dir="C:/Program Files/MySQL/MySQL Server 8.4/share/charsets"
    
  • Если кодировка символов — сложная кодировка, которую нельзя загрузить динамически, вам необходимо перекомпилировать программу с поддержкой этой кодировки.

    Для кодировок Unicode вы можете определять сортировки без перекомпиляции, используя обозначения LDML. См. Раздел 12.14.4, «Добавление сортировки UCA к кодировке Unicode символов».

  • Если кодировка символов — динамическая кодировка, но у вас нет файла конфигурации для неё, вы должны установить файл конфигурации для данной кодировки из новой дистрибуции MySQL.

  • Если в вашем файле индекса кодировки символов (Index.xml) отсутствует имя кодировки, ваша программа отобразит сообщение об ошибке:

    Character set 'charset_name' is not a compiled character set and is not
    specified in the '/usr/share/mysql/charsets/Index.xml' file
    

    Чтобы решить эту проблему, вы должны либо получить новый файл индекса, либо вручную добавить в него имена отсутствующих кодировок символов.

Вы можете принудительно заставить клиентские программы использовать определенную кодировку символов следующим образом:

[client]
default-character-set=charset_name

Это обычно не требуется. Однако, когда character_set_system отличается от character_set_server или character_set_client, и вы вводите символы вручную (как идентификаторы объектов базы данных, значения столбцов или оба), они могут отображаться неправильно в выводе клиента, или сам вывод может быть отформатирован неправильно. В таких случаях запуск клиента mysql с помощью --default-character-set=system_character_set — то есть установка кодировки символов клиента в соответствии с системной кодировкой символов — должна решить эту проблему.

© 2025 Oracle
Licensed under the GPLv2 License.
https://docs.oracle.com/cd/E17952_01/mysql-8.4-en/charset-configuration.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API