通过.frm和.ibd文件恢复表结构和数据

这里以hue数据库中的desktop_document2表为例

分成两步骤,先去表结构,再取数据,最好在一个用完就可以删除的数据库中进行

取表结构篇:

1.创建一个新数据库,然后创建一个和需要恢复的表的同名表,且引擎必须为InnoDB(即引擎为InnoDB的t_user表,其结构无所谓,字段数量相同就行),

2.关闭数据库服务(service mysqld stop),然后拿原来的desktop_document2.frm替换新建的数据库中的desktop_document2.frm(/var/lib/mysql/hue/desktop_document2.frm)

3.接着对配置文件(my.cnf)设置innodb_force_recovery = 6,重启数据库,desc desktop_document2查看表结构

导出表结构: mysqldump -uroot -pxxx -d hue desktop_document2>db.sql;

如果出现权限问题,记得 chmod 700 /var/lib/mysql/hue;chown -R mysql:mysql /var/lib/mysql

取数据篇:

1.用之前的表结构,重新建表

2.alter table desktop_document2 discard tablespace ,可以发现/var/lib/mysql/hue中的desktop_document2.ibd已经不存在了

3.把我们之前的desktop_document2.ibd导入,执行.alter table desktop_document2 import tablespace

4.修改权限,查看数据库中数据

PS.如果执行2,3中的时候,提示

ERROR 1451 (23000): Cannot delete or update a parent row: a foreign key constraint fails

那么可以

SET foreign_key_checks = 0;

取消外建约束,完成以后在

SET foreign_key_checks = 1;

恢复外键约束

Centos7下Mysql通过.frm和.ibd恢复数据的更多相关文章

  1. 利用.frm、.ibd恢复数据

    我们知道启用innodb_file_per_table选项后,单个表(InnoDB引擎)的数据和索引放入单独的文件中(.ibd),建表语句保存在.frm文件中本文假设192.168.85.132,33 ...

  2. .frm和.ibd恢复数据

    昨日晚上开发告诉我不小心truncate两个表的数据,要求还原.结果在阿里云上找到了备份内容,结果是物理备份文件.frm..ibd.心中一万个草泥马啊..没办法,开始还原吧. 1.查看测试机Mysql ...

  3. frm和ibd恢复sql文件的操作

    情况:有mysql中data文件(仅仅一个数据库) 操作:frm和ibd恢复sql文件的操作 1.创建相同名字的库xxx 2.把ibdata1替换成原来的 3.把数据库xxx内内容全部替换为原来的 完 ...

  4. Centos7 下mysql大小写敏感问题

    在Centos7 下mysql大小写敏感问题,会导致程序运行时找不到对应的表. 解决办法: 第一步:编辑/etc/my.cnf文件,在[mysqld]节下 添加 lower_case_table_na ...

  5. Linux - centos7 下 MySQL(mariadb) 和 主从复制

    目录 Linux - centos7 下 MySQL(mariadb) 和 主从复制 MySQL(mariadb) 安装MySQL(mariadb) 配置数据库的中文支持 在远程用 mysql客户端去 ...

  6. Centos7 下mysql 密码重置

    Centos7 下mysql 密码重置 先停止mysql服务 mysqld_safe --skip-grant-tables & mysql mysql> use mysql;mysql ...

  7. Mysql ibdata 丢失或损坏如何通过frm&ibd 恢复数据

    mysql存储在磁盘中,各种天灾人祸都会导致数据丢失.大公司的时候我们常常需要做好数据冷热备,对于小公司来说要做好所有数据备份需要支出大量的成本,很多公司也是不现实的.万一还没有做好备份,数据被误删除 ...

  8. Mysql 通过frm&ibd 恢复数据

    mysql存储在磁盘中,各种天灾人祸都会导致数据丢失.大公司的时候我们常常需要做好数据冷热备,对于小公司来说要做好所有数据备份需要支出大量的成本,很多公司也是不现实的.万一还没有做好备份,数据被误删除 ...

  9. 通过.frm和.ibd恢复mysql数据

    .frm文件:保存了每个表的元数据,包括表结构的定义等: .ibd文件:InnoDB引擎开启了独立表空间(my.ini中配置innodb_file_per_table = 1)产生的存放该表的数据和索 ...

随机推荐

  1. mysql RR下不存在则插入

    主要看并发事务中不存在则插入(只有key索引)的阻塞情况. 表定义: mysql> desc user; +-------------+------------------+------+--- ...

  2. 01 JDBC的问题

    jdbc编程步骤: 1. 加载.注册数据库驱动   DriverManager 2. 创建并获取数据库链接   Connection 3. 创建jdbc statement/preparedState ...

  3. Python解析xml与JSON

    xml与json是常用的文件交换格式,常用来表示网页的html则是xml的变种.解析xml和json在web开发中有着重要应用. DOM解析XML 文件对象模型(Document Object Mod ...

  4. 常用算法3 - 字符串查找/模式匹配算法(BF & KMP算法)

    相信我们都有在linux下查找文本内容的经历,比如当我们使用vim查找文本文件中的某个字或者某段话时,Linux很快做出反应并给出相应结果,特别方便快捷! 那么,我们有木有想过linux是如何在浩如烟 ...

  5. VB里的 dim是什么意思?

    Dim为Dimension的缩写,后面加上所需变量的名字As为变量指定类型程序运行时,Dim语句就根据变量类型为变量分配内存空间

  6. 使用mybatis-generator生成自动代码

    2019-02-22 配置文件: pom.xml  添加 dependency plugin    基于mybatis-plus <dependency> <groupId>o ...

  7. data whitening

    http://ufldl.stanford.edu/tutorial/unsupervised/PCAWhitening/

  8. Mac Supervisor 管理进程

    无论是在日常工作中还是平时玩代码中,我总是离不开 Supervisor,其实很久之前我就写过一篇文章:supervisord 部署 Flask,在里面,我仔细讲解了如何在 Linux 环境下安装并且配 ...

  9. Oracle扩容日志文件

    0.检查当前数据库日志切换频率 select * from v$log_history where first_time>=to_date('2017-10-18','yyyy-mm-dd') ...

  10. front-end 前端发展学习路线参考图

    front-end 前端发展学习路线参考图 学习的路程还很长~!