相关的文档10bet官方网站gydF4y2Ba 本手册下载gydF4y2Ba
PDF (Ltr)gydF4y2Ba- 36.4 mbgydF4y2Ba
PDF (A4)gydF4y2Ba- 36.4 mbgydF4y2Ba
PDF (RPM)gydF4y2Ba- 35.7 mbgydF4y2Ba
HTML下载(TGZ)gydF4y2Ba- 9.5 mbgydF4y2Ba
HTML下载(邮政编码)gydF4y2Ba- 9.5 mbgydF4y2Ba
HTML下载(RPM)gydF4y2Ba- 8.2 mbgydF4y2Ba
手册页(TGZ)gydF4y2Ba- 235.5 kbgydF4y2Ba
手册页(邮政编码)gydF4y2Ba- 347.0 kbgydF4y2Ba
信息(Gzip)gydF4y2Ba- 3.3 mbgydF4y2Ba
信息(邮政编码)gydF4y2Ba- 3.3 mbgydF4y2Ba
本手册节选gydF4y2Ba

MySQL 5.7参考手册gydF4y2Ba/gydF4y2Ba...gydF4y2Ba/gydF4y2Ba 标识符到文件名的映射gydF4y2Ba

9.2.4标识符到文件名的映射gydF4y2Ba

文件系统中的数据库和表标识符以及名称之间存在对应关系。对于基本结构,MySQL将每个数据库表示为数据目录中的一个目录,将每个表表示为适当的数据库目录中的一个或多个文件。对于表格式文件(gydF4y2Ba.FRMgydF4y2Ba),数据总是存储在这个结构和位置。gydF4y2Ba

对于数据和索引文件,磁盘上的确切表示与存储引擎相关。这些文件可以存储在与gydF4y2Ba纳gydF4y2Ba文件或信息可能存储在单独的文件中。gydF4y2BaInnoDBgydF4y2Ba数据存储在InnoDB数据文件中。如果使用表空间gydF4y2BaInnoDBgydF4y2Ba,则使用您创建的特定表空间文件。gydF4y2Ba

在数据库或表标识符中,除ASCII NUL (gydF4y2BaX ' 00 'gydF4y2Ba).MySQL在创建数据库目录或表文件时,会对相应文件系统对象中存在问题的字符进行编码:gydF4y2Ba

  • 基本拉丁字母(gydF4y2Ba一个…咱…ZgydF4y2Ba),数字(gydF4y2Ba0 . . 9gydF4y2Ba)和下划线(gydF4y2Ba_gydF4y2Ba)被按原样编码。因此,它们的大小写敏感性直接取决于文件系统的特性。gydF4y2Ba

  • 所有其他具有大写/小写映射的国家字母都按下表编码。代码范围列中的值是UCS-2值。gydF4y2Ba

    代码范围gydF4y2Ba 模式gydF4y2Ba 数量gydF4y2Ba 使用gydF4y2Ba 未使用的gydF4y2Ba 块gydF4y2Ba
    00 c0 . . 017 fgydF4y2Ba [@] [0 . . 4] [g . . z]gydF4y2Ba 5 * 20 = 100gydF4y2Ba 97gydF4y2Ba 3.gydF4y2Ba 拉丁文-1补编+拉丁文扩展- agydF4y2Ba
    0370 . . 03 ffgydF4y2Ba [@] [5 . . 9] [g . . z]gydF4y2Ba 5 * 20 = 100gydF4y2Ba 88gydF4y2Ba 12gydF4y2Ba 希腊语和科普特语gydF4y2Ba
    0400 . . 052 fgydF4y2Ba [@] [g . . z] [0 . . 6]gydF4y2Ba 20 * 7 = 140gydF4y2Ba 137gydF4y2Ba 3.gydF4y2Ba 西里尔字母+西里尔字母的补充gydF4y2Ba
    0530 . . 058 fgydF4y2Ba [@] [g . . z] [7 . 8)gydF4y2Ba 20 * 2 = 40gydF4y2Ba 38gydF4y2Ba 2gydF4y2Ba 亚美尼亚gydF4y2Ba
    2160 . . 217 fgydF4y2Ba [@] [g . . z] [9]gydF4y2Ba 20 * 1 = 20gydF4y2Ba 16gydF4y2Ba 4gydF4y2Ba 数形式gydF4y2Ba
    0180 . . 02年房颤gydF4y2Ba [@] [g . . z] [k . .)gydF4y2Ba 20 * 11 = 220gydF4y2Ba 203gydF4y2Ba 17gydF4y2Ba 拉丁语Extended-B + IPA扩展名gydF4y2Ba
    1 e00 . . 1滚开gydF4y2Ba [@] [g . . z] [l . . r]gydF4y2Ba 20 * 7 = 140gydF4y2Ba 136gydF4y2Ba 4gydF4y2Ba 拉丁扩展附加gydF4y2Ba
    1 f00 . . 1 fffgydF4y2Ba [@] [g . . z] [s . . z]gydF4y2Ba 20 * 8 = 160gydF4y2Ba 144gydF4y2Ba 16gydF4y2Ba 希腊延长gydF4y2Ba
    ……gydF4y2Ba [@] [. . f] [g . . z]gydF4y2Ba 6 * 20 = 120gydF4y2Ba 0gydF4y2Ba 120gydF4y2Ba 保留gydF4y2Ba
    24日24 e9 b6 . .gydF4y2Ba [@] [@] [z . .)gydF4y2Ba 26gydF4y2Ba 26gydF4y2Ba 0gydF4y2Ba 封闭的#gydF4y2Ba
    FF21 . . FF5AgydF4y2Ba [@] [. . z] [@]gydF4y2Ba 26gydF4y2Ba 26gydF4y2Ba 0gydF4y2Ba 半宽和全宽形式gydF4y2Ba

    序列中的一个字节编码字母大小写。例如:gydF4y2Ba拉丁大写字母a和gravegydF4y2Ba编码是gydF4y2Ba@0GgydF4y2Ba,而gydF4y2Ba拉丁文小写字母a与grave连用gydF4y2Ba编码是gydF4y2Ba@0ggydF4y2Ba.这里的第三个字节(gydF4y2BaGgydF4y2Ba或gydF4y2BaggydF4y2Ba)表示字母盘。(在不区分大小写的文件系统中,两个字母被视为相同的。)gydF4y2Ba

    对于某些区块,例如西里尔字母,第二个字节决定字母大小写。对于其他块,如Latin1 Supplement,第三个字节决定字母大小写。如果序列中有两个字节是字母(如在希腊语扩展中),最左边的字母字符代表字母大小写。所有其他字母字节必须为小写。gydF4y2Ba

  • 除下划线(外的所有非字母字符gydF4y2Ba_gydF4y2Ba),以及来自没有大写/小写映射的字母(如希伯来语)的字母使用十六进制表示进行编码,十六进制数字使用小写字母gydF4y2Ba一个f . .gydF4y2Ba:gydF4y2Ba

    0x003F -> @003f 0xFFFF -> @ffffgydF4y2Ba

    十六进制值对应于gydF4y2Baucs2gydF4y2Ba双字节字符集。gydF4y2Ba

在Windows上,一些名称如gydF4y2Ba空gydF4y2Ba,gydF4y2Ba打印gydF4y2Ba,gydF4y2Ba辅助gydF4y2Ba是通过附加编码的吗gydF4y2Ba@@@gydF4y2Ba当服务器创建相应的文件或目录时,将添加到名称中。这发生在所有平台上,以便在平台之间可移植相应的数据库对象。gydF4y2Ba

如果您的数据库或表来自5.1.6以前的MySQL版本,其中包含特殊字符,并且底层目录名或文件名没有更新为使用新的编码,服务器将用前缀显示它们的名称gydF4y2Ba# mysql50 #gydF4y2Ba的输出中gydF4y2BaINFORMATION_SCHEMAgydF4y2Ba表或gydF4y2Ba显示gydF4y2Ba语句。例如,如果有一个名为gydF4y2Baa@bgydF4y2Ba它的名称编码还没有更新,gydF4y2Ba显示表gydF4y2Ba像这样显示它:gydF4y2Ba

mysql >显示表;+----------------+ | Tables_in_test  | +----------------+ | # mysql50 # a@b  | +----------------+gydF4y2Ba

要引用编码未更新的此类名称,必须提供gydF4y2Ba# mysql50 #gydF4y2Ba前缀:gydF4y2Ba

mysql> SHOW COLUMNS FROM ' a@b ';错误1146 (42S02):表的测试。a@b' doesn't exist mysql> SHOW COLUMNS FROM `#mysql50#a@b`; +-------+---------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------+---------+------+-----+---------+-------+ | i | int(11) | YES | | NULL | | +-------+---------+------+-----+---------+-------+

要更新旧名称以消除使用特殊前缀引用它们的需要,可以用gydF4y2BamysqlcheckgydF4y2Ba.以下命令将所有名称更新为新的编码:gydF4y2Ba

Mysqlcheck——fix-db-names——fix-table-names——所有数据库gydF4y2Ba

若要只检查特定的数据库或表,请忽略gydF4y2Ba——所有数据库gydF4y2Ba并提供适当的数据库或表参数。和有关信息。gydF4y2BamysqlcheckgydF4y2Ba调用的语法,请参阅gydF4y2Ba第4.5.3节,“mysqlcheck -表维护程序”gydF4y2Ba.gydF4y2Ba

请注意gydF4y2Ba

的gydF4y2Ba# mysql50 #gydF4y2Ba前缀仅供服务器在内部使用。不应该使用使用此前缀的名称创建数据库或表。gydF4y2Ba

同时,gydF4y2BamysqlcheckgydF4y2Ba类的文字实例无法修复包含的名称gydF4y2Ba@gydF4y2Ba用于编码特殊字符的字符。如果数据库或表包含此字符,则使用gydF4y2Ba, mysqldumpgydF4y2Ba在升级到MySQL 5.1.6或更高版本之前转储它们,然后在升级后重新加载转储文件。gydF4y2Ba

请注意gydF4y2Ba

将mysql 5.1之前包含特殊字符的数据库名称转换为5.1格式,并添加了一个gydF4y2Ba# mysql50 #gydF4y2Ba前缀是弃用;希望它在MySQL的未来版本中被删除。因为不赞成使用这种转换,所以gydF4y2Ba——fix-db-namesgydF4y2Ba而且gydF4y2Ba——fix-table-namesgydF4y2Ba选项gydF4y2BamysqlcheckgydF4y2Ba和gydF4y2Ba升级数据目录名称gydF4y2Ba条款的gydF4y2Ba修改数据库gydF4y2Ba语句也已弃用。gydF4y2Ba

只支持从一个版本系列升级到另一个版本系列(例如,从5.0到5.1,或从5.1到5.5),因此应该不需要将旧的5.0数据库名称转换为MySQL的当前版本。作为一种解决方法,在升级到最新版本之前,先将MySQL 5.0升级到MySQL 5.1。gydF4y2Ba