Documentation Home
MySQL 8.3 Reference Manual
Related Documentation Download this Manual
PDF (US Ltr) - 40.8Mb
PDF (A4) - 40.9Mb
Man Pages (TGZ) - 294.0Kb
Man Pages (Zip) - 409.0Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb
Excerpts from this Manual

6.6.4.3 myisamchk 修复选项

myisamchk 支持以下选项来修复表操作(在给定选项如 --recover--safe-recover 时):

  • --backup, -B

    Command-Line Format --backup

    创建 .MYD 文件的备份,命名为 file_name-time.BAK

  • --character-sets-dir=dir_name

    Command-Line Format --character-sets-dir=path
    Type 字符串
    Default Value [none]

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

  • --correct-checksum

    Command-Line Format --correct-checksum

    纠正表的 checksum 信息。

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

    Command-Line Format --data-file-length=len
    Type 数字

    数据文件的最大长度(当重新创建数据文件时,如果文件是“full”的话)。

  • --extend-check, -e

    Command-Line Format --extend-check

    尝试从数据文件中恢复每一行数据。通常,这也会找到很多垃圾行。不要使用这个选项,除非你非常需要。

    见 also 该选项在表检查选项下的描述。

    关于输出格式的描述,见 第 6.6.4.5 节,“使用 myisamchk 获取表信息”

  • --force, -f

    Command-Line Format --force

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

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

    Command-Line Format --keys-used=val
    Type 数字

    对于 myisamchk,该选项值是一个二进制值,指示哪些索引需要更新。每个二进制位对应一个表索引,其中第一个索引是位 0。选项值为 0 将禁用所有索引的更新,可以用于加速插入。禁用的索引可以使用 myisamchk -r重新激活。

  • --max-record-length=len

    Command-Line Format --max-record-length=len
    Type 数字

    如果 myisamchk 无法分配足够的内存来存储它们,那么跳过长度大于给定长度的行。

  • --并行恢复, -p

    Command-Line Format --并行恢复
    Note

    在 MySQL 8.0.28 中弃用,在 MySQL 8.0.30 中删除。

    使用与 -r-n 相同的技术,但使用不同的线程创建所有键。 这是一份 beta 质量代码。请自行承担风险!

  • --快速, -q

    Command-Line Format --快速

    通过仅修改索引文件,而不是数据文件,来实现更快的修复。你可以指定这个选项两次,以强制 myisamchk 在出现重复键时修改原始数据文件。

  • --恢复, -r

    Command-Line Format --恢复

    执行可以修复几乎所有问题的修复,除了唯一键不唯一(这是在 MyISAM 表中非常不可能的错误)。如果你想恢复一个表,这是要尝试的第一个选项。你应该尝试 --安全恢复 只有当 myisamchk 报告表无法使用 --恢复 修复时。(在非常不可能的情况下,如果 --恢复 失败,数据文件将保持不变。)

    如果你有很多内存,你应该增加 myisam_sort_buffer_size 的值。

  • --安全恢复, -o

    Command-Line Format --安全恢复

    使用旧的恢复方法,读取所有行并更新所有索引树基于找到的行。这比 --恢复 慢一个数量级,但可以处理 --恢复 无法处理的几个非常不可能的情况。此恢复方法也使用比 --恢复 少得多的磁盘空间。通常,你应该首先使用 --恢复 修复,然后使用 --安全恢复 只有当 --恢复 失败时。

    如果你有很多内存,你应该增加 key_buffer_size 的值。

  • --设置排序=名称

    Command-Line Format --设置排序=name
    Type 字符串

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

  • --排序恢复, -n

    Command-Line Format --排序恢复

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

  • --临时目录=目录名称, -t 目录名称

    Command-Line Format --临时目录=dir_name
    Type 目录名称

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

  • --unpack, -u

    Command-Line Format --unpack

    unpack 使用 myisampack 打包的表。