文档首页
MySQL 8.4 参考手册
相关文档 下载本手册
PDF (US Ltr) - 39.9Mb
PDF (A4) - 40.0Mb
手册页 (TGZ) - 258.5Kb
手册页 (Zip) - 365.5Kb
信息 (Gzip) - 4.0Mb
信息 (Zip) - 4.0Mb


6.6.4.3 myisamchk 修复选项

myisamchk 支持以下用于表修复操作的选项(当给出 --recover--safe-recover 等选项时执行的操作)

  • --backup, -B

    命令行格式 --backup

    .MYD 文件备份为 file_name-time.BAK

  • --character-sets-dir=dir_name

    命令行格式 --character-sets-dir=path
    类型 字符串
    默认值 [无]

    安装字符集的目录。请参阅 第 12.15 节,“字符集配置”

  • --correct-checksum

    命令行格式 --correct-checksum

    更正表的校验和信息。

  • --data-file-length=len, -D len

    命令行格式 --data-file-length=len
    类型 数字

    数据文件的最大长度(在数据文件“已满”时重新创建数据文件时)。

  • --extend-check, -e

    命令行格式 --extend-check

    执行尝试从数据文件中恢复每一行的修复。通常,这也会发现很多垃圾行。除非万不得已,否则不要使用此选项。

    另请参阅表检查选项下对此选项的描述。

    有关输出格式的描述,请参阅 第 6.6.4.5 节,“使用 myisamchk 获取表信息”

  • --force, -f

    命令行格式 --force

    覆盖旧的中间文件(名称类似于 tbl_name.TMD 的文件),而不是中止。

  • --keys-used=val, -k val

    命令行格式 --keys-used=val
    类型 数字

    对于 myisamchk,选项值是一个位值,指示要更新的索引。选项值的每个二进制位对应于一个表索引,其中第一个索引是位 0。选项值为 0 禁用对所有索引的更新,这可以用于获得更快的插入。可以使用 myisamchk -r 重新激活已停用的索引。

  • --max-record-length=len

    命令行格式 --max-record-length=len
    类型 数字

    如果 myisamchk 无法分配内存来保存大于给定长度的行,则跳过这些行。

  • --quick, -q

    命令行格式 --quick

    通过仅修改索引文件而不是数据文件来实现更快的修复。您可以指定此选项两次,以强制 myisamchk 在重复键的情况下修改原始数据文件。

  • --recover, -r

    命令行格式 --recover

    执行修复,可以修复几乎所有问题,除了不唯一的唯一键(这对于 MyISAM 表来说是极不可能发生的错误)。如果要恢复表,这是首先要尝试的选项。仅当 myisamchk 报告无法使用 --recover 恢复表时,才应尝试 --safe-recover。(在 --recover 失败的极少数情况下,数据文件保持不变。)

    如果您的内存很大,则应增加 myisam_sort_buffer_size 的值。

  • --safe-recover, -o

    命令行格式 --safe-recover

    使用旧的恢复方法进行修复,该方法按顺序读取所有行,并根据找到的行更新所有索引树。这比 --recover 慢一个数量级,但可以处理 --recover 无法处理的几个极不可能发生的情况。这种恢复方法使用的磁盘空间也比 --recover 少得多。通常,您应该首先使用 --recover 进行修复,然后仅在 --recover 失败时才使用 --safe-recover

    如果您的内存很大,则应增加 key_buffer_size 的值。

  • --set-collation=name

    命令行格式 --set-collation=name
    类型 字符串

    指定用于对表索引进行排序的排序规则。字符集名称由排序规则名称的第一部分隐含。

  • --sort-recover, -n

    命令行格式 --sort-recover

    强制 myisamchk 使用排序来解析键,即使临时文件会非常大。

  • --tmpdir=dir_name, -t dir_name

    命令行格式 --tmpdir=dir_name
    类型 目录名

    用于存储临时文件的目录路径。如果未设置,myisamchk 将使用 TMPDIR 环境变量的值。--tmpdir 可以设置为以循环方式连续用于创建临时文件的目录路径列表。目录名之间的分隔符在 Unix 上是冒号 (:),在 Windows 上是分号 (;)。

  • --unpack, -u

    命令行格式 --unpack

    解压缩使用 myisampack 打包的表。