10bet网址
MySQL 8.0参考手册
相关的文档10bet官方网站 下载本手册
PDF(美国高级主任)- 41.5 mb
PDF (A4)- 41.6 mb
手册页(TGZ)- 262.2 kb
手册页(Zip)- 372.3 kb
信息(Gzip)- 4.0 mb
信息(邮政编码)- 4.0 mb
本手册节选

10.13添加字符集

本节讨论向MySQL添加字符集的过程。正确的过程取决于字符集是简单还是复杂:

  • 如果字符集不需要特殊的字符串排序例程,也不需要多字节字符支持,那么它很简单。

  • 如果字符集需要这些特性中的任何一个,那么它就很复杂。

例如,希腊而且swe7简单字符集,而繁体而且捷克是复杂的字符集。

要使用下面的说明,您必须有一个MySQL源代码发行版。在说明中,MYSET表示要添加的字符集的名称。

  1. 添加一个<字符集>元素MYSETsql /分享/数据集,但预览时教程/文件。使用文件中的现有内容作为添加新内容的指南。的部分清单latin1<字符集>元素:

     Western cp1252 West europe …<整理名="latin1_swedish_ci" id="8" order="芬兰语,瑞典语"> primary compiled  <整理名="latin1_danish_ci" id="15" order="丹麦语"/>…  Binary  compiled …< /字符集>

    <字符集>元素必须列出字符集的所有排序规则。这些排序规则必须至少包括一个二进制排序规则和一个默认(主)排序规则。默认排序规则通常使用后缀的命名general_ci(一般不区分大小写)。二进制排序规则可能是默认排序规则,但通常它们是不同的。默认排序规则应该有主要的国旗。二进制排序规则应该有二进制国旗。

    必须为每个排序规则分配唯一的ID号。1024 ~ 2047的id范围为用户定义的排序规则保留。要查找当前使用的排序规则id的最大值,使用以下查询:

    Select max (id) from information_schema.collations;
  2. 这一步取决于您添加的是简单字符集还是复杂字符集。简单字符集只需要配置文件,而复杂字符集则需要定义排序函数、多字节函数或两者兼有的C源文件。

    对于简单的字符集,创建一个配置文件,MYSET. xml,描述字符集属性。中创建此文件sql /分享/数据集目录中。您可以使用的副本latin1.xml作为这个文件的基础。该文件的语法非常简单:

    • 注释被写成普通的XML注释(<!--文本-->).

    • 单词在< >地图数组元素由任意数量的空格分隔。

    • 里面的每个词< >地图数组元素必须是十六进制格式的数字。

    • < >地图数组元素的< ctype >Element有257个单词。另一个< >地图之后的数组元素有256个单词。看到第10.13.1节“字符定义数组”

    • 中列出的每个排序规则<字符集>元素的字符集Index.xmlMYSET. xml必须包含<排序>元素,它定义字符顺序。

    对于复杂的字符集,创建一个C源文件,描述字符集属性,并定义正确执行字符集操作所需的支持例程:

  3. 修改配置信息。使用现有的配置信息作为添加信息的指南MYSYS.这里的示例假设字符集具有默认和二进制排序规则,但是如果MYSET具有额外的排序规则。

    1. 编辑mysys / charset-def.c,注册新字符集的排序规则。

      将这些行添加到宣言部分:

      # ifdef HAVE_CHARSET_MYSETextern CHARSET_INFO my_charset_MYSET_general_ci;extern CHARSET_INFO my_charset_MYSET_bin;# endif

      将这些行添加到登记部分:

      # ifdef HAVE_CHARSET_MYSETadd_compiled_collation (&my_charset_MYSET_general_ci);add_compiled_collation (&my_charset_MYSET_bin);# endif
    2. 如果字符集使用ctype -MYSET.c、编辑字符串/ CMakeLists.txt并添加ctype -MYSET.c对的定义STRINGS_SOURCES变量。

    3. 编辑cmake / character_sets.cmake

      1. 添加MYSET与的价值CHARSETS_AVAILABLE按字母顺序排列。

      2. 添加MYSET的价值CHARSETS_COMPLEX按字母顺序排列。即使对于简单的字符集,这也是需要的,因此CMake可以识别-DDEFAULT_CHARSET =MYSET

  4. 重新配置、重新编译和测试。