这myisamchk.实用程序获取有关数据库表或检查,维修或优化它们的信息。myisamchk.合作myisam.
表(表格的表格).myd.
和。我的我
用于存储数据和索引的文件)。
你也可以使用检查表
和修复表
检查和修理的陈述myisam.
表。看第13.7.3.2节“检查表陈述”, 和第13.7.3.5节“修复表陈述”。
指某东西的用途myisamchk.不支持分区表。
在执行表修复操作之前,最好在表格备份;在某些情况下,操作可能导致数据丢失。可能的原因包括但不限于文件系统错误。
邀请myisamchk.像这样:
myisamchk [选项]tbl_name.......
这选项
指定你想要的东西myisamchk.去做。它们在以下部分中描述。您还可以通过调用获取选项列表myisamchk - help.。
没有选择,myisamchk.只需检查您的表作为默认操作。获取更多信息或告诉myisamchk.要采取纠正措施,请指定如下讨论中所述的选项。
tbl_name.
是您要检查或修复的数据库表。如果你运行myisamchk.除了在数据库目录中的某个地方,您必须指定数据库目录的路径,因为myisamchk.不知道数据库所在的位置。实际上,myisamchk.实际上并不关心您正在处理的文件是否位于数据库目录中。您可以将与数据库表对应的文件复制到其他一些位置,并在那里执行恢复操作。
您可以将多个表命名为myisamchk.如果您愿意的话,命令行。您还可以通过命名其索引文件来指定表(具有的文件。我的我
后缀)。这使您可以使用模式指定目录中的所有表*。我的我
。例如,如果您在数据库目录中,则可以查看所有myisam.
这样的目录中的表:
myisamchk * .myi.
如果您不在数据库目录中,您可以通过指定目录的路径来检查所有表
myisamchk./ path / to / database_dir /*。我的我
甚至可以通过指定带有MySQL数据目录的路径的通配符来检查所有数据库中的所有表:
myisamchk./ path / to / datadir / * / *。我的我
建议快速检查所有方式myisam.
表是:
myisamchk - 斯伦特 - 快餐/ path / to / datadir / * / *。我的我
如果你想检查一切myisam.
表和修复任何已损坏的,您可以使用以下命令:
myisamchk -silent - force --fast - update-state \ --key_buffer_size = 64m - myisam_sort_buffer_size = 64m \ --read_buffer_size = 1m --write_buffer_size = 1m \/ path / to / datadir / * / *。我的我
此命令假定您有超过64MB。有关内存分配的更多信息myisamchk., 看第4.6.4.6节“Myisamchk内存用法”。
有关使用的其他信息myisamchk., 看第7.6节“Myisam表维护和崩溃恢复”。
您必须确保在运行时没有其他程序使用表myisamchk.。最有效的手段是在运行时关闭MySQL服务器myisamchk.,或锁定所有表myisamchk.正在使用。
否则,当你运行时myisamchk.,它可能会显示以下错误消息:
警告:客户使用或未正确关闭表格
这意味着您正在尝试检查另一个程序已更新的表(例如mysqld.服务器)尚未关闭文件或已在不正确关闭文件的情况下死亡,这有时会导致一个或多个损坏myisam.
表。
如果mysqld.正在运行,必须强制使用它来刷新通过使用仍在内存中缓冲的任何表格修改冲洗表
。然后,您应该确保在运行时没有人使用该表myisamchk.
但是,避免此问题的最简单方法是使用检查表
代替myisamchk.检查表格。看第13.7.3.2节“检查表陈述”。
myisamchk.支持以下选项,可以在命令行或中指定[Myisamchk]
组选项文件。有关MySQL程序使用的选项文件的信息,请参阅第4.2.2.2节“使用选项文件”。。
表4.19 Myisamchk选项
选项名称 | 描述 |
---|---|
- 分析 | 分析关键值的分布 |
- 拜卡 | 将.myd文件备份为file_name-time.bak |
- block-search. | 找到给定偏移量的块所属的记录 |
- 查看 | 检查表格错误 |
- 仅改变了 | 只检查自上次检查以来已更改的表 |
- 校正校验和 | 更正表格的校验和信息 |
- data-file-length | 数据文件的最大长度(当它已满时重新创建数据文件) |
--debug. | 写调试日志 |
--decode_bits. | Decode_bits. |
--defaults-extra-file | 除了常见的选项文件外,还阅读命名选项文件 |
--defaults文件 | 只读命名选项文件 |
- defaults-group-suffix | 选项组后缀值 |
- 描述 | 打印有关表的一些描述性信息 |
- extend-check. | 做非常彻底的表检查或修复,试图从数据文件中恢复每一行 |
- 快速地 | 只检查尚未关闭的表格 |
- 力量 | 如果Myisamchk在表格中找到任何错误,则自动修复操作 |
- 力量 | 覆盖旧的临时文件。与-r或-o选项一起使用 |
--ft_max_word_len. | 全文索引的最大字长度 |
--ft_min_word_len. | 全文索引的最小字长度 |
--ft_stopword_file. | 使用此文件中的stopword而不是内置列表 |
- 帮助 | 显示帮助消息和退出 |
- 帮助 | 显示帮助消息和退出 |
- 信息 | 打印关于选中的表的信息统计信息 |
--key_buffer_size. | 用于MyISAM表的索引块的缓冲区大小 |
- 使用 - 使用 | 指示要更新的索引的比特值 |
- 录制长度 | 如果Myisamchk无法分配内存以保存它们,则跳过大于给定长度的行 |
- Medium-Check. | 检查比-extend-check操作更快的检查 |
--myisam_block_size. | 块大小用于Myisam索引页面 |
--myisam_sort_buffer_size. | 在修复时对索引或创建具有创建索引或更改表的索引时分配的缓冲区 |
- nno-defaults. | 读取没有选项文件 |
- 恢复 | 使用与-r和-n相同的技术,但使用不同的线程(beta)并行创建所有密钥 |
- 打印默认值 | 打印默认选项 |
- 快的 | 通过未修改数据文件,实现更快的修复 |
--read_buffer_size. | 每个线程为顺序扫描为每个扫描的每个表分配此大小的缓冲区 |
- 只读 | 不要将表格标记为选中 |
- 恢复 | 做一个可以修复几乎任何问题的修复,除非独特的钥匙不是唯一的 |
- safe-recover. | 使用旧的恢复方法进行修复,该方法通过所有行读取,并根据找到的行更新所有索引树 |
- set-auto-uthement | Force Auto_increment编号为新记录开始于给定值 |
- set-collation. | 指定用于对表索引进行排序的归类 |
- 沉默的 | 静音模式 |
- sort_buffer_size. | 在修复时对索引或创建具有创建索引或更改表的索引时分配的缓冲区 |
- 索引 | 将索引树块以高低顺序排序 |
- sort_key_blocks. | sort_key_blocks. |
- 录制记录 | 根据特定索引对记录进行排序 |
- 恢复 | 强制myisamchk使用排序即使临时文件也非常大,也可以解决键 |
- stats_method. | 指定MyISAM索引统计信息收集代码如何处理NULL |
--tmpdir. | 用于存储临时文件的目录 |
- 卧铺 | 打开一张桌子包装的桌子 |
- update状态 | 存储在.myi文件中的信息,以指示选中表以及表是否崩溃 |
- 韦尔斯 | 冗长模式 |
- 版本 | 显示版本信息并退出 |
-write_buffer_size. | 写缓冲区大小 |