MySQL 8.4 版本注意事項
本節說明如何透過撰寫 MySQL Index.xml
檔案中與 <charset>
字元集描述相關聯的 <collation>
元素,為 8 位元字元集新增簡單的排序規則。此處描述的程序不需要重新編譯 MySQL。此範例會將名為 latin1_test_ci
的排序規則新增至 latin1
字元集。
選擇排序規則 ID,如第 12.14.2 節「選擇排序規則 ID」所示。以下步驟使用 ID 1024。
修改
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/ | +--------------------+-----------------------------------------+
為排序規則選擇一個名稱,並將其列在
Index.xml
檔案中。找到要新增排序規則的字元集之<charset>
元素,並新增一個<collation>
元素,以指示排序規則名稱和 ID,將名稱與 ID 關聯起來。例如<charset name="latin1"> ... <collation name="latin1_test_ci" id="1024"/> ... </charset>
在
latin1.xml
設定檔中,新增一個<collation>
元素,以命名排序規則,並包含一個<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>
重新啟動伺服器,並使用此陳述式驗證排序規則是否存在
mysql> SHOW COLLATION WHERE Collation = 'latin1_test_ci'; +----------------+---------+------+---------+----------+---------+ | Collation | Charset | Id | Default | Compiled | Sortlen | +----------------+---------+------+---------+----------+---------+ | latin1_test_ci | latin1 | 1024 | | | 1 | +----------------+---------+------+---------+----------+---------+