Spec-Zone .ru
спецификации, руководства, описания, API

10.4.3. Добавление Простого Сопоставления к 8-разрядному Набору символов

Этот раздел описывает, как добавить простое сопоставление для 8-разрядного набора символов при записи <collation> элементы связались с a <charset> описание набора символов в MySQL Index.xml файл. Процедура, описанная здесь, не требует MySQL перекомпиляции. Пример добавляет названное сопоставление latin1_test_ci к latin1 набор символов.

  1. Выберите ID сопоставления, как показано в Разделе 10.4.2, "Выбирая ID Сопоставления". Следующие шаги используют ID 1024.

  2. Измените Index.xml и latin1.xml конфигурационные файлы. Эти файлы будут расположены в каталоге, названном character_sets_dir системная переменная. Можно проверить значение переменной следующим образом, хотя путь мог бы отличаться на Вашей системе:

    mysql> SHOW VARIABLES LIKE
                        'character_sets_dir';+--------------------+-----------------------------------------+| Variable_name      | Value                                   |+--------------------+-----------------------------------------+| character_sets_dir | /user/local/mysql/share/mysql/charsets/ |+--------------------+-----------------------------------------+
  3. Выберите имя для сопоставления и перечислите его в Index.xml файл. Найдите <charset> элемент для набора символов, к которому сопоставление добавляется, и добавляет a <collation> элемент, который указывает на имя сопоставления и ID, чтобы связать имя с ID. Например:

    <charset name="latin1">  ...  <collation name="latin1_test_ci" id="1024"/>  ...</charset>
  4. В latin1.xml конфигурационный файл, добавляют a <collation> элемент, который называет сопоставление и это содержит a <map> элемент, который определяет символьную таблицу отображения кода к весу для символьных кодов от 0 до 255. Каждое значение в пределах <map> элемент должен быть числом в шестнадцатеричном формате.

    <collation name="latin1_test_ci"><map> 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F 20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F 30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F 40 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F 50 51 52 53 54 55 56 57 58 59 5A 5B 5C 5D 5E 5F 60 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F 50 51 52 53 54 55 56 57 58 59 5A 7B 7C 7D 7E 7F 80 81 82 83 84 85 86 87 88 89 8A 8B 8C 8D 8E 8F 90 91 92 93 94 95 96 97 98 99 9A 9B 9C 9D 9E 9F A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 AA AB AC AD AE AF B0 B1 B2 B3 B4 B5 B6 B7 B8 B9 BA BB BC BD BE BF 41 41 41 41 5B 5D 5B 43 45 45 45 45 49 49 49 49 44 4E 4F 4F 4F 4F 5C D7 5C 55 55 55 59 59 DE DF 41 41 41 41 5B 5D 5B 43 45 45 45 45 49 49 49 49 44 4E 4F 4F 4F 4F 5C F7 5C 55 55 55 59 59 DE FF</map></collation>
  5. Перезапустите сервер и используйте этот оператор, чтобы проверить, что сопоставление присутствует:

    mysql> SHOW COLLATION LIKE
                        'latin1_test_ci';+----------------+---------+------+---------+----------+---------+| Collation      | Charset | Id   | Default | Compiled | Sortlen |+----------------+---------+------+---------+----------+---------+| latin1_test_ci | latin1  | 1024 |         |          |       1 |+----------------+---------+------+---------+----------+---------+