mysql修复表的三个方法

mysql修复表的三个方法

大家好,又见面了,我是全栈君。

断电或非正常关机可能导致MySQL数据库出现表损坏,特别是MyISAM表数据很大的时候。有三种方法,一种方法使用MySQL的repair table的sql语句,另一种方法是使用MySQL提供的myisamchk,,最后一种是mysqlcheck命令行工具。

1.repair table(建议方法,对MyISAM引擎表有用)
(1)check table tabTest;
如果出现的结果说Status是OK,则不用修复,如果有Error,可以用:

(2)repair table tabTest;
进行修复,修复之后可以在用check table命令来进行检查。在新版本的phpMyAdmin里面也可以使用check/repair的功能。

2. myisamchk(该工具必须运行在服务终止条件下,对MyISAM引擎表有用)
(1)myisamchk tablename.MYI
进行检测。

(2)myisamchk -of tablename.MYI
网上说的其它方法:
那么修复test表的方法为
myisamchk -r -q /var/lib/mysql/db/test.MYI
如果修复全部表,用这个命令
myisamchk -r -q /var/lib/mysql/db/*.MYI

3.运行mysqlcheck命令行工具(该工具可以在服务运行状态下执行)

转自:https://blog.csdn.net/orangleliu/article/details/63275154

检查特定的表:
如果应用中提示某个表坏了,使用下面的命令来检查。
$ 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

检查所有库中的所有表:
全部的库和表都检查一遍了。
$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 引擎不支持 优化,可以参考 http://stackoverflow.com/questions/30635603/what-does-table-does-not-support-optimize-doing-recreate-analyze-instead-me 的回答。
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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/112096.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 微型计算机的档次主要取决于,微型计算机的性能主要取决于

    微型计算机的档次主要取决于,微型计算机的性能主要取决于匿名用户1级2013-07-10回答“微型计算机的性能主要取决于什么?”主要看三大件,CPU,主板,内存。1、CPU:其功能主要是解释计算机指令以及处理计算机软件中的数据,他的速度快慢可以代表计算机处理数据的能力的高低。2、内存:它是与CPU进行沟通的桥梁,计算机中所有程序的运行都是在内存中进行的,因此内存的性能对计算机的影响非常大。3、主板:主板在整个微机系统中扮演着举足轻重的角色。主板的类型…

    2022年6月28日
    40
  • 玩转软路由 篇四:软路由中OpenWRT作为旁路由的安装设置教程

    玩转软路由 篇四:软路由中OpenWRT作为旁路由的安装设置教程开篇说一些仁者见仁智者见智的话,先声明,这只是代表我自己近期浅陋的看法。看到很多人玩路由器,刷各种固件,什么爱快、高格、老毛子、OpenWRT什么的,自己也折腾过,也在恩山论坛里下载各路大神的固件使用。作为一个小白,就自然而然想到,这么多固件,哪个最好?当然对于这个问题,每个人的回答都不一样,毕竟适合自己的才重要。经过我自己不断在网上寻找答案,最后形成了一个成熟的看法,那就是真正的好不好,关键点在驱动,驱动做得会使得路由系统如虎添翼。但是,很多芯片厂家在卖芯片的时候是需要承诺不可进行二次开发的,所以路由器大

    2022年6月11日
    89
  • 基于单片机的电子时钟设计(keil+protues仿真,含代码及原理图)

    基于单片机的电子时钟设计(keil+protues仿真,含代码及原理图)  本学期单片机课程要求做课程设计,我选取的课题如下:基于单片机的电子时钟设计,要求:(1)实时显示当前时间;(2)能够对时间进行设置;(3)包括年月日,小时,分钟,秒.(4)整点提醒功能.经过一周的时间已实现上述功能,故在此分享一下;所选用器材单片机最小系统(这就不用细说了吧,这里我选用AT89C51),排阻,四个按钮开关,8位共阴数码管,蜂鸣器;prot……

    2022年6月28日
    26
  • RedFlag Linux 5.0桌面版安装oralce10[通俗易懂]

    RedFlag Linux 5.0桌面版安装oralce10[通俗易懂] 本文中描述的步骤可能有些不是必须的,但笔者没有进一步验证,故将安装过程中的所有步骤均列出在此。—www.bianceng.cn1.安装RedflagLinux5.0桌面版2.安装前得准备,打几个补丁1).redhatlinux9下第一张光盘下的RedHat/RPMS/compat-libstdc++-7.3-2.96.118.i386.rpm(安装方法rpm-ivh

    2022年8月20日
    3
  • 锋利的jQuery系列<一>[通俗易懂]

    锋利的jQuery系列<一>[通俗易懂]1.简介jQuery是继Prototype之后又一个优秀的JavaScript库,是一个由JohnResig创建于06年1月的开源项目。现在的jQuery主要包括核心库、UI、插件和jQueryMobile这几大模块。2.配置jQuery环境进入jQuery的官网,下载最新的jQuery库文件。jQuery环境配置:jQuery不需要安装,把下载的jquery.js放到网站的一个公共的位

    2025年5月27日
    0
  • maxscript命令

    maxscript命令————————————————————-Black————————————————————-APEXSaveFBXActionCreateFlowActionEditFlowActionExtendFlowAc

    2022年10月29日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号