这个教材叫你如何在数据库全部或者部分数据丢失,或者数据库加载数据失败时,如何恢复数据。

发生这种情况的一个原因是表数据损坏。

在这种特定情况下,你连接到MySQL服务器,你看不到更多的表,因为它们缺失了。

在这种情况下,MySQL错误日志包含如下信息:

InnoDB: Error: log file ./ib_logfile0 is of different size 0 50331648 bytes

InnoDB: than specified in the .cnf file 0 5242880 bytes!

[ERROR] Plugin 'InnoDB' init function returned error.

[ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.

[ERROR] Unknown/unsupported storage engine: InnoDB

[ERROR] Aborting

下面解释的这种方法只可以在innodb引擎才可以使用。

注意:在你做任何事之前,在当前的数据库条件下,对数据库的全部文件进行一次备份,并且保证它们在其他地方是安全的。

假如要恢复数据,需要保证数据目录以及它的内容是完整的,在我这个示例中,是完好的。

drwx------ 2 mysql mysql 4096 Oct 11 2012 performance_schema

drwx------ 2 mysql mysql 4096 Dec 10 2012 ndbinfo

drwx--x--x 2 mysql mysql 4096 Dec 10 2012 mysql

-rw-rw---- 1 mysql mysql 56 Dec 19 2012 auto.cnf

drwx------ 2 mysql mysql 4096 Jul 30 2013 bugs

-rw-r----- 1 mysql mysql 50331648 Mar 18 10:35 ib_logfile0

-rw-r----- 1 mysql mysql 50331648 Apr 22 2013 ib_logfile1

-rw-r----- 1 mysql mysql 35651584 Mar 18 10:35 ibdata1

Ibdata1: 这个文件是系统表空间,其中包含了多个innodb表和相关索引

*.frm: 持有MySQL表的元数据信息,这个文件位于对应的数据库目录下(在这个 在bugs文件夹下)

id_logfiles* : 所有改变的数据都会写入到该文件,这非常类似于其他关系型数据库中的归档日志。

拷贝文件

假如使用如上日志文件恢复数据,第一步就是停止MySQL服务

service mysqld stop

拷贝ibdata文件和数据库对应库目录下的文件到某一个目录下,我们将利用他们来恢复数据,在这个案例中,我们拷贝到/tmp目录下,在这个案例中,数据库库的名字为bugs.

cp –r ibdata* ib_logfile* /tmp

cp –r schema_name/ /tmp/schema_name/

启动MySQL

service mysqld start

另一方面,一个典型的数据库备份和恢复,你应该使用mysqldump命令。

恢复数据

下一步,如下解释恢复表数据

在我的my.cnf文件中,设置一个参数的值给ib_logfile0 文件,我的案例中我设置48M,当我看这个文件大小时,则可以 ls -lh ib_logfile0

innodb_log_file_size=48M

注意logfile0 和logfile1的 大小应该一直

拷贝前面的ibdata.*到MySQL数据库的data对应目录

cp –r /tmp/ibdata* /var/lib/mysql/

在数据目录中创建一个与要还原的数据库架构名称同名的空文件夹,并复制此文件夹中以前的.frm文件,如下所示:

··

cp –r /tmp/ib_logfile* /var/lib/mysql/

cp –r /tmp/schema_name/*.frm /var/lib/mysql/schema_name/

最后重启MySQL

service mysqld restart

现在你将表数据恢复了,并且数据库也运行,不要忘记给连接MySQL的客户端授予适当的权限。

reference:

原文:https://www.thegeekstuff.com/2014/04/recover-innodb-mysql/

单词:

One of the reason for this to happen is when 导致出现这种情况的原因之一是XXX

particular :特殊的

scenario:情形

corrupted:损坏的

associated :相关的

Holds :持有

corresponding :相应的

concepts :概念

On a related note:另一方面

typical :典型的

respective :分别的,各自的

appropriate :适当的

mysql数据库as表恢复_【翻译】如何从ibdata和.frm文件恢复MySQL表数据相关推荐

  1. mysql数据库编程(c 语言)_【C/C++学院】(23)Mysql数据库编程--C语言编程实现mysql客户端...

    #include #include #include #include #include #include #include #include "mydb.h" void sqld ...

  2. mysql备份与还原,增量备份;使用ibd和frm文件恢复数据

    主要用的:binlog.mysqldump.mysqlbinlog 参考: https://www.cnblogs.com/Cherie/p/3309456.html https://blog.csd ...

  3. MYSQL数据文件--.frm文件(只有.frm文件时的表结构恢复)

    了解MYSQL的都知道,在MYSQL中建立任何一张数据表,在其数据目录对应的数据库目录下都有对应表的.frm文件,.frm文件是用来保存每个数据表的元数据(meta)信息,包括表结构的定义等,.frm ...

  4. mysql表只有frm文件_MYSQL数据文件--.frm文件(只有.frm文件时的表结构恢复)

    了解MYSQL的都知道,在MYSQL中建立任何一张数据表,在其数据目录对应的数据库目录下都有对应表的.frm文件,.frm文件是用来保存每个数据表的元数据(meta)信息,包括表结构的定义等,.frm ...

  5. mysql frm 恢复_mysql 从 frm 文件恢复 table 表结构的3种方法

    mysql 正常运行的时候,查看 table 的结构并不是困难的事. 但是有时 mysql 发生故障,这种方法便不再可行. 当遇到故障,通常使用新的 mysql 实例来恢复当前的数据. 建表是非常重要 ...

  6. mysql数据库被远程连接_如何让mysql数据库准许被远程连接访问

    第一:更改 "mysql" 数据库里的 "user" 表里的 "host" 项,从"localhost"改称'%'. 或 ...

  7. mysql数据库应用模式与特点_MySQL存储引擎的实际应用以及对MySQL数据库中各主要存储引擎的独特特点的描述...

    MySQL存储引擎的实际应用以及对MySQL数据库中各主要存储引擎的独特特点的描述: 1.MySQL有多种存储引擎: MyISAM.InnoDB.MERGE.MEMORY(HEAP).BDB(Berk ...

  8. .mallox后缀勒索病毒解密工具|勒索病毒解密恢复|mallox勒索病毒解密|mallox勒索病毒文件恢复|数据库恢复

    mallox勒索病毒概述,mallox勒索病毒解密恢复及日常防护建议 .mallox后缀勒索病毒解密工具|勒索病毒解密恢复|mallox勒索病毒解密|mallox勒索病毒文件恢复|数据库恢复 mall ...

  9. 数据恢复新姿势——通过ibd和frm文件恢复数据

    一.背景 1.1.需求来源 需要给客户将生产环境的数据恢复到测试环境,但是线上环境的xtrabackup全备数据量太大,拷贝下来比较麻烦,并且需要恢复的数据只有整库中的两张表的数据,所以客户只是将全备 ...

最新文章

  1. Oozie 配合 sqoop hive 实现数据分析输出到 mysql
  2. python五十一:动态导入模块,通过字符串导入模块
  3. Redis Template使用append方法不起作用的解决办法以及序列化/反序列化的解释
  4. eui加载时间长_面试官:为什么 HashMap 的加载因子是0.75?
  5. NetBeans eclipse比較
  6. nginx修改upstream不重启的方法(ngx_http_dyups_module模块)
  7. 从Hadoop到云原生,谈如何消除程序员35岁危机
  8. 微信知识付费小程序博客源码(带299条数据)
  9. 转 最小生成树(kruskal 算法 和prim算法)
  10. Mybatis.cfg配置标签的顺序问题
  11. oracle视频经典教程,甲骨论经典版课程 Oracle DBA视频教程 超经典Oracle视频教程 博森瑞...
  12. ADI 485芯片型号
  13. C++中的 求模运算 和 求余运算
  14. 重庆要做的“边缘计算”,是什么?
  15. git 学习指南 学习资料笔记
  16. 【更新】蛙色VR视频故事线功能上线,行业进入新时代
  17. 【转贴】英语如此简单
  18. 【vue】vue中axios的使用及vue生命周期详解_07
  19. (五)51单片机基础——矩阵键盘
  20. 虚拟化技术—基础(1)

热门文章

  1. 案例分析:程序媛记一次特殊的“故障”处理
  2. 面对行业难题,华为云邀请物联网全行业拿出“亮剑”精神
  3. 传统到敏捷的转型中,谁更适合做Scrum Master?
  4. 技术分享丨数据仓库的建模与ETL实践技巧
  5. Apache CarbonData 2.0 开发实用系列之一:与Spark SQL集成使用
  6. 要想深入理解mysql索引?这16个点你必须要了解!
  7. 80万辆车“云上飞驰”的背后
  8. 韩顺平php视频笔记77 抽象类vs接口 关键字final const
  9. R语言学习笔记(四)参数估计
  10. python用matplotlib画图时将标签竖着显示