怎么修正损坏的MySQL数据表ITeye - 亚美娱乐

怎么修正损坏的MySQL数据表ITeye

2019年02月20日09时12分43秒 | 作者: 鸿运 | 标签: 修正,数据表,运用 | 浏览: 299

    于断电或非正常关机而导致MySQL数据库呈现过错对错常常见的问题。有两种办法,一种办法运用MySQL的check table和repair table 的sql句子,另一种办法是运用MySQL供给的多个myisamchk, isamchk数据检测康复东西。前者运用起来比较简洁。引荐运用。

1. check table 和 repair table
登陆MySQL 终端:
MySQL -uxxxxx -p dbname
 check table tabTest;
假如呈现的成果说Status是OK,则不必修正,假如有Error,能够用:
 repair table tabTest;
进行修正,修正之后能够在用check table指令来进行检查。在新版本的phpMyAdmin里边也能够运用check/repair的功用。

2. myisamchk, isamchk
其间myisamchk适用于MYISAM类型的数据表,而isamchk适用于ISAM类型的数据表。这两条指令的主要参数相同,一般新的体系都运用MYISAM作为缺省的数据表类型,这儿以myisamchk为比如进行阐明。当发现某个数据表呈现问题时能够运用:

myisamchk tablename.MYI

进行检测,假如需求修正的话,能够运用:

myisamchk -of tablename.MYI

关于myisamchk的具体参数阐明,能够拜见它的运用协助。需求留意的时在进行修改时有必要保证MySQL服务器没有拜访这个数据表,稳妥的情况下是最好在进行检测时把MySQL服务器Shutdown掉。

-----------------------------

别的能够把下面的指令放在你的rc.local里边发动MySQL服务器前:

[ -x /tmp/MySQL.sock ]   /pathtochk/myisamchk -of /DATA_DIR/*/*.MYI

其间的/tmp/MySQL.sock是MySQL监听的Sock文件方位,关于运用RPM装置的用户应该是/var/lib/MySQL/MySQL.sock,关于运用源码装置则是/tmp/MySQL.sock能够依据自己的实际情况进行改变,而pathtochk则是myisamchk地点的方位,DATA_DIR是你的MySQL数据库寄存的方位。

需求留意的时,假如你计划把这条指令放在你的rc.local里边,有必要承认在履行这条指令时MySQL服务器有必要没有发动! 

检测修正一切数据库(表)
MySQLcheck -A -o -r -p

版权声明
本文来源于网络,版权归原作者所有,其内容与观点不代表亚美娱乐立场。转载文章仅为传播更有价值的信息,如采编人员采编有误或者版权原因,请与我们联系,我们核实后立即修改或删除。

猜您喜欢的文章