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
其它参数参考文档!