命令摘要
mysqlcheck是用来 检查,分析,优化,修复表的。
mysqlcheck只有在数据库运行的状态下才可运行,意味着不用停止服务操作
mysqlcheck其实就是CHECK TABLE, REPAIR TABLE, ANALYZE TABLE, OPTIMIZE TABLE的便捷操作集合,利用指定参数将对于的SQL语句发送到数据库中进行执行。同样对于那些存储引擎的的支持,也受对于表维护SQL语句的限制。(如check 则不支持MEMORY表, repair 则不支持 InnoDB表)
命令格式
Usage: mysqlcheck [OPTIONS] database [tables]
OR mysqlcheck [OPTIONS] –databases DB1 [DB2 DB3…]
OR mysqlcheck [OPTIONS] –all-databases
命令帮助
mysqlcheck –help
【options】常用连接参数
-u, –user=name —-连接mysql的用户
-p, –password[=name] —-连接mysql用户的密码
-P, –port=# —-连接mysql用户的端口
-h, –host=name —-连接mysql的主机名或IP,默认localhost本地
命令参数 command 详解
-A, –all-databases —选择所有的库
-a, –analyze —分析表
-B, –databases —选择多个库
-c, –check —检查表
-o, –optimize —优化表
-C, –check-only-changed —最后一次检查之后变动的表
-auto-repair —自动修复表
-g, –check-upgrade —检查表是否有版本变更,可用 auto-repair修复
-F, –fast —只检查没有正常关闭的表
-f, –force —忽悠错误,强制执行
-e, –extended —表的百分百完全检查,速度缓慢
-m, –medium-check —近似完全检查,速度比 –extended稍快
-q, –quick —最快的检查方式,在repair 时使用该选项,则只会修复 index tree
-r, –repair —修复表
-s, –silent —只打印错误信息
-V, –version —显示版本
例子
检查所有数据库中的表:
mysqlcheck -u root -p123456 -A -c
检查特定数据库mysql ,sys 中的表:
mysqlcheck -u root -p123456 -c -B mysql sys
只检查数据库mysql中的db表:
mysqlcheck -u root -p123456 -c mysql db
分析所有库的表:
mysqlcheck -u root -p123456 -a -A
优化表:
mysqlcheck -u root -p123456 -o mysql user
修复表:
mysqlcheck -u root -p123456 -r mysql user
自动修复表优化表:
mysqlcheck -u root -p123456 -o mysql user --auto-repair