mysql数据库表错误修复总结

mysql数据库坏表修复

,,萝卜白菜,各有所爱,能干的活,能修复表才是王道! ! !

(备份完成后再进行以下修复操作)

,可以,mysqldump——,比;所有人。sql,进行全库备份,(mysqldump导出错误的时候可以省略错误的表进行导出其他的数据添加选项,——ignore-table=table_name,),也可以进入到/usr/地方/壳/执行,mysql_backup。上海进行备份数据库,以上两种方式都不可以备份可以进入到/数据/mysql/3306目录里面将以下所有文件信息复制一份

,

针对MyIsam表进行修复方法

1。描述:,

在数据库可以进入mysql程序正常,只有日志中抛有表错误的时候使用以下修复:

mysql>,维修表的表名

,

3。描述:,

在数据库不能进入,数据库程序不能够正常启动的时候使用

mysqlcheck优势,,,(此命令在数据库外执行,针对所有myisam的数据库表进行修复——=所有,o,——优化进行对索引优化【重新整理索引】- r,——维修修复)


壳# mysqlcheck优势,执行的时候会抛出错误(凡是innodb表都会抛错误)

在知道是那个表错误的情况下可以使用以下命令进行修复,(后续可以添加- f选项力,强制修复,慎用此选项操作)

壳# myisamchk,桨,表。MYI,

,,,

针对Innodb表修复方法

,

1。描述:

数据库可以进入mysql程序正常,只有日志中抛有表错误的时候使用以下修复:

, 1,通过,mysqldump将错误的表进行导出(仅导出数据即可),确定导出没有问题!,

, 2,进入mysql,截断表,表名,

, 3,通过mysql命令将刚才导出的数据库数据灌入即可搞定

2。描述:

,,可参考http://dev.mysql.com/doc/refman/5.5/en/forcing-innodb-recovery.html

数据库无法正常启动,日志中存在表错误,指数错误信息修复:

1,文在my . cnf中所做件里面添加

(mysqld) innodb_force_recovery=1,,(1级别最低通常只是作为跳过表错误正常启动mysql服务)

级别越高,修复难度越大,(1 - 6),


1 (SRV_FORCE_IGNORE_CORRUPT):忽略检查到的腐败页。

2 (SRV_FORCE_NO_BACKGROUND):阻止主线程的运行,如主线程需要执行全面清洗操作,会导致崩溃。

3 (SRV_FORCE_NO_TRX_UNDO):不执行事务回滚操作。

4 (SRV_FORCE_NO_IBUF_MERGE):不执行插入缓冲的合并操作。

5 (SRV_FORCE_NO_UNDO_LOG_SCAN):不查看重做日志,InnoDB存储引擎会将未提交的事务视为已提交。

6 (SRV_FORCE_NO_LOG_REDO):不执行前滚的操作。

2,能够正常启动mysql后,上层应用不用启动,防止写入数据出现错误

,进入mysql进行更改错误表的信息

, mysql>,alter table table_name,引擎=myisam;

,修改完成后使用myisam的修复方式进行修复

,修复完成之后将表更改为innodb, my.cnf文件的innodb_force_recovery=1注释掉之后重新启动mysql注意观察日志是否抛错

3,通过数据库备份加binlog日志进行恢复,步骤过多,不予写出

仍然可以参考http://dev.mysql.com/doc/refman/5.5/en/forcing-innodb-recovery.html

进行恢复

,

,

,

,

,


mysql数据库表错误修复总结