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默认的第一个参数是数据库名:
1 | |
第一个参数后面的参数被认为是数据库中对应的表:
1 | |
2.也可以使用参数--databases(-B)指定多个数据库:
1 | |
3.检查所有的数据库:
1 | |
myisamchk默认是检查表
1.检查表(也可以使用索引文件)
1 2 | |
2.修复表
1 | |