• 首页
  • vue
  • TypeScript
  • JavaScript
  • scss
  • css3
  • html5
  • php
  • MySQL
  • redis
  • jQuery
  • 将简单检验规则添加到8位字符集

    本节介绍如何通过在MySQL 文件中编写<collation><charset>字符集描述关联的元素来为8位字符集添加简单校验Index.xml。此处描述的过程不需要重新编译MySQL。该示例将命名规则添加latin1_test_cilatin1字符集。

    1. 选择一个校验ID,如“选择校验ID”所示。以下步骤使用ID为1024。
    2. 修改Index.xmllatin1.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>要添加校验规则的字符集的<collation>元素,然后添加一个指示校验规则名称和ID 的元素,以将名称与ID关联。例如:

      <charset name="latin1">
        ...
        <collation name="latin1_test_ci" id="1024"/>
        ...
      </charset>
      
    4. 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>
      
    5. 重新启动服务器,并使用以下语句验证是否存在校验规则:

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