mysqlcheck和myisamchk都可以用来检测和修复表。(主要是MyISAM表)
但是也有以下不同点:
1.都可以检查、分析和修复myisam表。但是mysqlcheck也可以检查、分析innodb表;myisamchk可以enabling、disabling索引。
2.mysqlcheck是客户端工具,通过网络与mysql server连接,要求server必须是在线的;myisamchk不是客户端程序,可以直接在myisam表上操作。
3.mysqlcheck是通过mysql server自身对表进行检查和修复;myisamchk要求被检测表是没有被打开、或未被使用,如果myisamchk和mysql server同时对表操作,可能导致表被损坏。

mysqlcheck有三种使用模式,取决于用户如何调用它:

1.mysqlcheck默认的第一个参数是数据库名:

> mysqlcheck testdb

第一个参数后面的参数被认为是数据库中对应的表:

> mysqlcheck testdb table1 table2

2.也可以使用参数--databases(-B)指定多个数据库:

> mysqlcheck --databases db1 db2 db3

3.检查所有的数据库:

> mysqlcheck --all-databases

  

myisamchk默认是检查表

1.检查表(也可以使用索引文件)

> myisamchk table1
> myisamchk table1.MYI

2.修复表

> myisamchk -recover table1

 

其它参数参考文档! 

05-07 12:26