幸运的是,MySQL 自带了快速修复所有表的命令。在下面的例子中,大家将使用 MySQL 的命令行工具来修复一个名为 example_database 的数据库中所有表:
mysqlcheck --databases example_database --auto-repair
这个命令会遍历 example_database 中的所有表,并尝试修复任何损坏的表。如果没有表出现问题,它将不会输出任何信息。否则,你可能会看到如下所示的输出:
example_database.Table1 warning : Table is marked as crashed and should be repaired status : OK example_database.Table2 status : OK example_database.Table3 warning : Table is marked as crashed and should be repaired status : OK ...
在这些输出中,大家可以看到哪些表表现正常(status : OK),哪些表出现了问题(warning : … and should be repaired)并需要修复。修复所有表之后,你将看到下面的输出:
example_database.Table1 status : OK example_database.Table2 status : OK example_database.Table3 status : OK ...
转而来说,如果想只修复一个名为 example_table 的表,可以使用如下命令:
mysqlcheck example_database example_table --auto-repair
在这个命令中,大家只需要指定需要修复的表名即可。
总结起来,使用 MySQL 的命令行工具修复数据库中出现问题的表非常的简单。你只需要几个命令就可以手动修复任何损坏的表。