网创优客建站品牌官网
为成都网站建设公司企业提供高品质网站建设
热线:028-86922220
成都专业网站建设公司

定制建站费用3500元

符合中小企业对网站设计、功能常规化式的企业展示型网站建设

成都品牌网站建设

品牌网站建设费用6000元

本套餐主要针对企业品牌型网站、中高端设计、前端互动体验...

成都商城网站建设

商城网站建设费用8000元

商城网站建设因基本功能的需求不同费用上面也有很大的差别...

成都微信网站建设

手机微信网站建站3000元

手机微信网站开发、微信官网、微信商城网站...

建站知识

当前位置:首页 > 建站知识

mysql数据库表错误修复总结

MySQL 数据库坏表修复

10余年的乌当网站建设经验,针对设计、前端、开发、售后、文案、推广等六对一服务,响应快,48小时及时工作处理。全网整合营销推广的优势是能够根据用户设备显示端的尺寸不同,自动调整乌当建站的显示方式,使网站能够适用不同显示终端,在浏览器中调整网站的宽度,无论在任何一种浏览器上浏览网站,都能展现优雅布局与设计,从而大程度地提升浏览体验。成都创新互联公司从事“乌当网站设计”,“乌当网站推广”以来,每个客户项目都认真落实执行。

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

修复之前谨记:先备份数据库(备份完成后再进行以下修复操作)

  可以mysqldump -A  > all.sql   进行全库备份  (mysqldump导出错误的时候可以省略错误的表进行导出其他的数据添加选项   --ignore-table=table_name  )  也可以进入到/usr/local/shell/ 执行  mysql_backup.sh进行备份数据库  以上两种方式都不可以备份 可以进入到/data/mysql/3306目录里面将以下所有文件信息copy一份

 

针对MyIsam表进行修复方法

1.描述: 

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

mysql>  REPAIR TABLE 表名

 

3.描述: 

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

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

shell# mysqlcheck -Aor   执行的时候会抛出错误(凡是innodb表都会抛错误)

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

shell# myisamchk   -oar   tables.MYI  

     

针对Innodb表修复方法

 

1.描述:

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

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

 2、进入mysql   truncate table  表名 

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

2.描述:

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

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

1、在my.cnf文件里面添加

[mysqld]

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

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

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

2(SRV_FORCE_NO_BACKGROUND):阻止主线程的运行,如主线程需要执行full purge操作,会导致crash。

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  ENGINE=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数据库表错误修复总结
分享链接:http://bjjierui.cn/article/pdjphh.html

其他资讯