myisamchk支持下面的表修复操作的选项:
· --backup, -B
将.MYD文件备份为file_name-time.BAK
· --character-sets-dir=path
字符集安装目录。参见5.10.1节,“数据和排序用字符集”。
· --correct-checksum
纠正表的校验和信息。
· --data-file-length=len, -D len
数据文件的最大长度(当重建数据文件且为“满”时)。
· --extend-check,-e
进行修复,试图从数据文件恢复每一行。一般情况会发现大量的垃圾行。不要使用该选项,除非你不顾后果。
· --force, -f
覆盖旧的中间文件(文件名类似tbl_name.TMD),而不是中断。
· --keys-used=val, -k val
对于myisamchk,该选项值为位值,说明要更新的索引。选项值的每一个二进制位对应表的一个索引,其中第一个索引对应位0。选项值0禁用对所有索引的更新,可以保证快速插入。通过myisamchk -r可以重新激活被禁用的索引。
· --no-symlinks, -l
不跟随符号连接。通常myisamchk修复一个符号连接所指的表。在MySQL 4.0中该选项不存在,因为从4.0开始的版本在修复过程中不移除符号链接。
· --parallel-recover, -p
与-r和-n的用法相同,但使用不同的线程并行创建所有键。这是alpha代码。自己承担风险!
· --quick,-q
不修改数据文件,快速进行修复。出现复制键时,你可以两次指定该项以强制myisamchk修改原数据文件。
· --recover, -r
可以修复几乎所有一切问题,除非唯一的键不唯一时(对于MyISAM表,这是非常不可能的情况)。如果你想要恢复表,这是首先要尝试的选项。如果myisamchk报告表不能用-r恢复,则只能尝试-o。在不太可能的情况下-r失败,数据文件保持完好)。
如果你有大量内存,你应增加sort_buffer_size的值。
· --safe-recover, -o
使用一个老的恢复方法读取,按顺序读取所有行,并根据找到的行更新所有索引树。这比-r慢些,但是能处理-r不能处理的情况。该恢复方法使用的硬盘空间比-r少。一般情况,你应首先用-r维修,如果-r失败则用-o。
如果你有大量内存,你应增加sort_buffer_size的值。
· (OBSOLETE) --set-character-set=name
在MySQL 5.1中不使用。参见--set-collation。
· --set-collation=name
更改用来排序表索引的校对规则。校对规则名的第一部分包含字符集名。
· --sort-recover, -n
强制myisamchk通过排序来解析键值,即使临时文件将可能很大。
· --tmpdir=path, -t path
用于保存临时文件的目录的路径。如果未设置,myisamchk使用TMPDIR环境变量的值。tmpdir可以设置为一系列目录路径,用于成功地以round-robin模式创建临时文件。在Unix中,目录名之间的间隔字符为冒号(‘:’),在Windows、NetWare和OS/2中为分号 (‘;’)。
· --unpack,-u
将用myisampack打包的表解包。