图片 5

MyISAM表维护工具,Linux系统下mysqlcheck修复数据库命令

一.概述

        
mysqlcheck客户端工具得以检查和修补MyISAM表,还是能够优化和分析表。实际上,它集成了mysql工具中check,repair,analyze,optimize功用,对于check
则不援助MEMO牧马人Y表, repair 则不扶助InnoDB表。mysqlcheck唯有在数据库运维的景色下才可运维,意味着不用结束服务操作。
  下边是三种调用mysqlcheck形式:
    图片 1

  option中常用以下选项:

-c, –check

检查表

-r, –repair

修复表

-a, –analyze

分析表

-o, –optimize

优化表

  1.1 检查表(check)

[root@hsr data]# pwd
/usr/local/mysql/data
[root@hsr data]# /usr/local/mysql/bin/mysqlcheck -uroot -p -c test

    图片 2

    上边防检查查到了test库中a表是OK的

  1.2 修复表(repair)

[root@hsr data]# /usr/local/mysql/bin/mysqlcheck -uroot -p -r test

    图片 3
    在test库新建了贰个innodb类型的b表,上海教室展现b表不支持修复。
  1.3 分析表(analyze)

[root@hsr data]# /usr/local/mysql/bin/mysqlcheck -uroot -p -a test

    图片 4
  1.4 优化表(optimize)

[root@hsr data]# /usr/local/mysql/bin/mysqlcheck -uroot -p -o test

    图片 5

mysqlcheck 是 MySQL
自带的多个工具,功用正是保养 表,其实就是反省,分析,修复和优化了。上面来介绍
mysqlcheck
工具的大致利用,合法文书档案在这里

原来的书文网站:

Linux系统下mysqlcheck修复数据库命令(详解),linuxmysqlcheck

mysqlcheck客户端工具得以检查和修复MyISAM表,还足以优化和分析表。

其实,它集成了mysql工具中check、repair、analyze、optimize的效果、

有三种格局来调用mysqlcheck:

shell> mysqlcheck[options] db_name [tables]

shell> mysqlcheck[options] ---database DB1 [DB2 DB3...]

shell> mysqlcheck[options] --all--database

比方未有点名别的表或行使—database或–all–database选项,

则检查整个数据库。

option中有以下常用选项:

-c, –check (检查表);

-r, –repair(修复表);

-a, –analyze (分析表);

-o, –optimize(优化表); //当中,暗中同意选项是-c(检查表)

例子:

检查表(check);

mysqlcheck -u root -c test

修复表(repair);

mysqlcheck -u root -r test

修复钦点的数据库用

# mysqlcheck -A -o -r Database_NAME
-p

检查修复全体的数据库(表;

# mysqlcheck -u root -A -0 -r -p

每一日定期自动优化MySQL数据库

crontab -e     //把它进入 cron job 每一天在 0一:00 自动执行

0 1 * * * mysqlcheck -Aao –auto-repair -u你的用户名 -p你的密码 >
/dev/null 2>&一

以上那篇Linux系统下mysqlcheck修复数据库命令(详解)正是小编分享给我们的全体内容了,希望能给大家二个参考,也期望我们多多支持帮客之家。

mysqlcheck客户端工具得以检查和修补MyISAM表,仍是能够优化和分析表。
实际上,它集成…

以下的事例都以依照 MySQL 伍.陆 版本运转意况下(mysqlcheck是个在线工具),
区别的囤积引擎对于那个命令的辅助程度分歧(指的是 check, repair, analyze,
optimize),上面内容偏于操作,重要基于 innodb 引擎。

提示:OPTIMIZE
在大表时候或许会花费大多日子,不明白原理意况下请小心选择!!! innodb
一般不要 OPTIMIZE,请参见 Using MySQL OPTIMIZE tables? For InnoDB?
Stop

自己争辨一定的表

留目的在于shell中执行,不是在mysql的互动情状下

若果选用中提示某些表坏了,使用上面包车型客车命令来检查。

$ mysqlcheck -c newmandela order -uroot -p
Enter password:
newmandela.order                                   OK

newmandela 是库名, order是表名,还须求输入用户名和密码

自己争持三个库中的全体表

$ mysqlcheck -c newmandela -uroot -p
Enter password:
newmandela.account                                 OK
newmandela.alarm                                   OK
newmandela.alarm_settings                          OK
newmandela.auth_group                              OK
newmandela.auth_group_permissions                  OK
newmandela.auth_permission                         OK
...

反省全部库中的全部表

整整的库和表都检查1回了。

$mysqlcheck -c --all-databases -uroot -p
Enter password:
apmonitor.acinfo                                   OK
apmonitor.apdailysts                               OK
apmonitor.apinfo                                   OK
apmonitor.apmonthsts                               OK
apmonitor.apscanlog                                OK
apmonitor.auth_group                               OK
...

比方只想检查某多少个库呢? 能够利用 –databases 参数

$ mysqlcheck -c --databases newmandela radius -uroot -p
Enter password:
newmandela.account                                 OK
newmandela.alarm                                   OK
newmandela.alarm_settings                          OK
newmandela.auth_group                              OK
...

使用 mysqlcheck 分析表

$ mysqlcheck -a radius payment_transactionrecord  -uroot -p
Enter password:
radius.payment_transactionrecord                   Table is already up to date

上边的指令 用来分析 radius 库的 payment_transactionrecord表, -a 表示
analyze

使用 mysqlcheck 优化表

# mysqlcheck -o radius payment_transactionrecord  -uroot -p
Enter password:
radius.payment_transactionrecord                   OK

-o 代表 optimize ,这里是优化 radius
库的 payment_transactionrecord 表

使用 mysqlcheck 修复表

# mysqlcheck -r radius payment_transactionrecord  -uroot -p
Enter password:
radius.payment_transactionrecord                   OK

-r 代表 repair ,这里是 修复 radius
库的 payment_transactionrecord 表

反省,优化,修复表组合命令

# mysqlcheck -uroot -p --auto-repair -c -o newmandela
Error:  mysqlcheck doesn't support multiple contradicting commands.

地方的指令报错了,去掉 -c

# mysqlcheck -uroot -p --auto-repair -o newmandela
Enter password:
newmandela.account
note     : Table does not support optimize, doing recreate + analyze instead
status   : OK
newmandela.alarm
note     : Table does not support optimize, doing recreate + analyze instead
status   : OK
newmandela.alarm_settings
note     : Table does not support optimize, doing recreate + analyze instead
status   : OK

每张表都出现了 Table does not support optimize, doing recreate + analyze instead,
代表如何看头呢? 它的意趣不是说 innodb 引擎不援助优化,能够参考  的回答。

mysqlcheck 常用选项

  • A, –all-databases 表示全体库
  • -a, –analyze 分析表
  • -o, –optimize 优化表
  • -r, –repair 修复表错误
  • -c, –check 检查表是还是不是出错
  • –auto-repair 自动修复损坏的表
  • -B, –databases 接纳七个库
  • -1, –all-in-1 Use one query per database with tables listed in a
    comma separated way
  • -C, –check-only-changed 检查表最后一遍检查过后的改动
  • -g, –check-upgrade Check for version dependent changes in the
    tables
  • -F, –fast Check tables that are not closed properly
  • –fix-db-names Fix DB names
  • –fix-table-names Fix table names
  • -f, –force Continue even when there is an error
  • -e, –extended Perform extended check on a table. This will take a
    long time to execute.
  • -m, –medium-check Faster than extended check option, but does most
    checks
  • -q, –quick Faster than medium check option

版权注明:本文为orangleliu
(,
多谢。