问题描述

1 mysql数据库5.6无法正常启动

2 直接复制替换innodb的frm和idb文件来新增数据表导致的问题

3 innodb文件ibdata1,ib_logfile0,ib_logfile1损坏,数据不一致

4 没有sql备份,无法正常登陆和导出当天数据

注意事项

innodb的表不能直接复制替换frm和idb文件,而是使用工具正常导入导出,myisam表可以直接复制替换文件

解决方法

1 开启mysql错误日志,观察日志来判断数据库什么问题(此次问题比较清楚,innodb损坏,ibdata1损坏导致)

2 innodb_force_recovery (0-6级别) 此次使用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):不执行前滚的操作。

当设置innodb_force_recovery大于0后,可以对标进行select、create、drop操作,但insert、update或者delete这类操作是不允许的

3 innodb_force_recovery=6 正常启动mysql后,无法使用navicat工具导出数据量大的的数据库,正常工具导出还会导致数据库崩溃(此处没有最近的sql备份,只有损坏后数据库目录直接备份,但是ibdata1损坏,所以这个备份没有意义,所以此处还是要导出正常的sql备份,用来恢复当天最近的数据)

4 尝试使用innochecksum  -f ibdata1工具来修复ibdata损坏,但是没有效果

5 使用mysqldump命令进行导出(此处遇到问题,和原来业务的数据编码问题,重新创建mysql环境,数据库创建问题,表创建问题,索引创建问题)

1 数据编码问题,此处并不是普通的中文乱码问题,而是编码: JUSTEP154053; 提示: KSQL语法错误,源程序服务tomcat启动问题

这个编码问题分为两步 :tomcat启动报错,数据库和表的编码问题,tomcat正常启动后里的程序页面报错,这是数据的编码问题

2 此处遇到数据库,表创建,数据问题,手动创建新的utf-8,但是不生效,虽然都和原环境一直,但还是会出现编码报错,业务有问题

3 解决无论导入和导出都需要加上--default-character-set=utf8(防止编码: JUSTEP154053,防止mysql错误导入ERROR 1064 (42000))

4 此次为了快速解决,使用了原来2018-04月的备份数据库,使用原来数据库的库和表结构,清空数据

5 导出来加-t 只导出数据,不导出表结构

6 解决步骤

1 导出三个库所需的数据 --default-character-set=utf8 只导出数据,不导结构

2 确保导出备份数据可以使用后,删除原有数据库文件

3 备份MySQL数据目录下的ib_logfile0、ib_logfile1、ibdata1三个文件,然后将这三个文件删除

4 innodb_force_recovery = 0 重新启动mysql 重建 ib_logfile0、ib_logfile1、ibdata1 此时所有数据表都无法打开

5 重新导入数据文件 --default-character-set=utf8 导入数据

mysql数据恢复通过frm和idb文件(此处没有使用)

记录参考https://blog.csdn.net/Sonny_alice/article/details/80198200

整个恢复过程其实可以总结为下面几步:

一:无表数据结构

(1):恢复表结构

(2):复制出来创建表的sql语句

(3):恢复表数据(在恢复表数据的时候,首先需要解除当前创建的表与默认生成的.ibd文件间的关系,接着将要恢复数据表的.ibd文件与当前创建的表联系起来即可)

(4):alter table songlyric discard tablespace;alter table songlyric import tablespace;

mysql ibdata1 损坏_mysql innodb文件ibdata1损坏导致mysql无法启动相关推荐

  1. mysql文件结构体_MySQL InnoDB文件相关的三个重要结构体

    我们使用mysql常使用innodb存储引擎,它包括两种,一种是innobase,另外一种是innodb plugin.今天主要介绍innodb plugin的file I/O操作,innodb pl ...

  2. mysql pid文件太大_mariadb /mysql表文件太大导致的数据库启动不了 | Think in Drupal

    mariadb/mysql表文件太大导致的数据库启动不了 我们帮助客户部署的一个采集器程序,突然罢工了.采集后台打开不了,经过检查发现是使用的mariadb启动不了了. 任凭我们怎么修改MariaDB ...

  3. mysql数据库binlog日志截断报错,导致mysql主从同步失败故障排查

    mysql数据库binlog日志截断报错,导致mysql主从同步失败故障排查 Got fatal error 1236 from master when reading data from binar ...

  4. mysql ibdata作用_mysql data文件夹下ibdata1 文件作用

    ibdata1这个文件超级大, 查了一下, 大概的作用如下 是储存的格式 INNODB类型数据状态下, ibdata用来储存文件的数据 而库名的文件夹里面的那些表文件只是结构而已 由于mysql4.1 ...

  5. mysql查看数据表是否损坏_mysql 检查数据库是否损坏

    MySQL主从复制之主库宕机处理 主库宕机  Master DOWN机-企业场景一主多从宕机从库切换主继续和从同步过程详解 登陆从库,show processlist; 查看两个线程的更新状态: 查看 ...

  6. mysql 从库数据损坏_MySQL数据库中数据损坏恢复全过程

    MySQL数据库中数据损坏恢复全过程 前几天因为MySQL数据库部分数据损坏原因,我尝试了下恢复数据,之后整理以下文档,供各位参考,以备各位同事以后如有类似问题,可以少走些弯路,尽快解决问题. 环境: ...

  7. mysql数据库建表失败_mysql数据库文件太大导致建表失败,如何避免

    [求助]mysql数据库文件太大导致建表失败,如何处理? 目录下各文件大小如下: root /mbsc/mysql/data # ll total 120646812 -rw-rw---- 1 mys ...

  8. mysql page校验_MySQL InnoDB离线校验工具innochecksum使用

    innochecksum工具可以打印InnoDB文件的校验值,该工具读取InnoDB表空间文件,计算每个页面的校验值,将计算的校验值与存储的校验值进行比较,并报告指示损坏页面的不匹配.它最初是为了加速 ...

  9. mysql 释放空间_Mysql InnoDB删除数据后释放磁盘空间的步骤详解

    Mysql InnoDB删除数据后释放磁盘空间的方法 Innodb数据库对于已经删除的数据只是标记为删除,并不真正释放所占用的磁盘空间,这就导致InnoDB数据库文件不断增长. 如果在创建数据库的时候 ...

最新文章

  1. NOIP2012-摆花
  2. 转载:VMware workstation创建虚拟机,安装Ubuntu系统
  3. 共享一个调用微信公众平台接口的客户端类库
  4. 服务器的攻与防(firewall 禁止指定Ip)
  5. mysql日志是什么格式_Mysql日志的三种格式
  6. tab栏切换 动画的相关方法上 动画的相关方法下 隐藏动画案例 隐藏动画练习
  7. PHP采集利器:Snoopy
  8. java改变表格标题,DIV 常用标题表格
  9. hadoop2.6.4 在ubuntu14.04下的搭建
  10. 如何避免大数据分析的失误
  11. 徕卡静态转换rinex软件_[摄影]旅游伴侣———徕卡SL2
  12. Atom: 安装版本过旧,会导致很多问题
  13. Intouch Historian历史曲线配置导入导出
  14. Tess4j的使用(识别中文)
  15. CNN结构:色彩特征提取-色彩属性HSV空间(色彩冷暖初始)
  16. macpro台式计算机,回顾经典的苹果Mac台式机 你见过几个?
  17. Chrome保存的知乎网页,本地打开后闪频刷新问题处理
  18. Matplotlib的柱状图
  19. 互斥锁Mutex解锁两次
  20. java发送outlook_在Outlook 2007中发送民意调查

热门文章

  1. C#学习-程序集和反射
  2. 包含图片,复选框的ListView(转)
  3. Android通过tcpdump抓包
  4. 程序员编程艺术:第三章续、Top K算法问题的实现
  5. python可视化使用_python可视化pyecharts
  6. python的作用域分别有几种_python 作用域知识点整理
  7. 无法拒绝的道歉表白神器(更新版)----msgbox代码
  8. 塞尔达传说gba_1986版塞尔达 回顾34年经典系列历代作品 满分最多系列游戏
  9. Python监视电子邮箱并提示收到新邮件
  10. 1000道Python题库系列分享八(29道)