一、将data目录下的对应的数据库目录复制备份到另外一个地方

[root@orderer /]# mkdir /home/data_bak

[root@orderer/]# cp -r /home/mysql-5.7.26/data/hl_central_sms_deduction/ /home/data_bak/[root@orderer/]#

二、连接MYSQL,删除原来的数据库,新建一个跟同名的数据库

mysql>create database hl_central_sms_deduction DEFAULT CHARSET utf8;

Query OK,1 row affected (0.01 sec)

三、利用MySQL Utilitie工具提供的mysqlfrm命令,导出数据库表结构SQL文件

安装MySQL Utilitie工具,参考https://www.cnblogs.com/sky-cheng/p/12218112.html

[root@orderer hl_central_sms_deduction]# mysqlfrm --diagnostic sms_deduction_log_20191201.frm

# WARNING: Cannot generate character set or collation names without the--server option.

# CAUTION: The diagnostic mode is a best-effort parse of the .frm file. As such, it may not identify all of the components of the table correctly. This is especially true for damaged files. It will also not read the default values forthe columns and the resulting statement may not be syntactically correct.

# Reading .frmfile forsms_deduction_log_20191201.frm:

# The .frmfileis a TABLE.

# CREATE TABLE Statement:

CREATE TABLE `sms_deduction_log_20191201` (

`id` int(10) unsigned NOT NULL AUTO_INCREMENT,

`phone` varchar(60) DEFAULT NULL,

`epid` varchar(60) DEFAULT NULL,

`message` varchar(3000) DEFAULT NULL,

`subcode` varchar(60) DEFAULT NULL,

`channel_id` varchar(150) DEFAULT NULL,

`push_url` varchar(3000) DEFAULT NULL,

`db_ip` varchar(150) DEFAULT NULL,

`db_name` varchar(150) DEFAULT NULL,

`created` timestamp DEFAULT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,

`sms_len`int(11) DEFAULT NULL,

`stype`char(4) CHARACTER SET NOT NULL,

`dtype` varchar(80) CHARACTER SET NOT NULL,

`msg_template` varchar(3000) DEFAULT NULL,

`province` varchar(150) DEFAULT NULL,

`qxt_fast_num`int(1) DEFAULT NULL,

`link_id` varchar(150) DEFAULT NULL,

`report_code` varchar(150) DEFAULT NULL,

PRIMARY KEY `PRIMARY` (`id`),

KEY `pk_sms_deduction_log_20191201_phone` (`phone`,`epid`,`created`) USING BTREE

) ENGINE=InnoDB;

#...done.

将SQL语句粘贴到客户端执行,报错

`stype` char(4) CHARACTER SET NOT NULL,

`dtype` varchar(80) CHARACTER SET NOT NULL,

将这两句修改为

`stype` char(4) NOT NULL,

`dtype` varchar(80) NOT NULL,

再执行上面的建表语句,成功。

此时,查看data目录下的hl_central_sms_deduction目录下多了两个文件

[root@orderer hl_central_sms_deduction]# ll??? 156

-rw-r----- 1 mysql mysql 61 1? 20 14:54db.opt-rw-r----- 1 mysql mysql 37856 1? 20 15:45sms_deduction_log_20191201.frm-rw-r----- 1 mysql mysql 114688 1? 20 15:45 sms_deduction_log_20191201.ibd

四、执行解除表空间绑定命令,对应的idb文件自动删除

mysql>use hl_central_sms_deduction;

Reading table informationforcompletion of table and column names

You can turn off this feature to get a quicker startup with-A

Database changed

mysql>alter table sms_deduction_log_20191201 discard tablespace;

Query OK,0 rows affected (0.04sec)

mysql>

查看data目录下的hl_central_sms_deduction目录

[root@orderer hl_central_sms_deduction]# ll??? 44

-rw-r----- 1 mysql mysql 61 1? 20 14:54db.opt-rw-r----- 1 mysql mysql 37856 1? 20 15:45sms_deduction_log_20191201.frm

[root@orderer hl_central_sms_deduction]#

此时,idb文件已自动删除,

五、我们将备份出来的ibd文件复制回去,再绑定表空间

[root@orderer hl_central_sms_deduction]# cp ../../../databak/hl_central_sms_deduction/sms_deduction_log_20191201.ibd .

修改文件所有者权限给mysql

[root@orderer hl_central_sms_deduction]# chown mysql:mysql sms_deduction_log_20191201.ibd

绑定表空间

mysql>alter table sms_deduction_log_20191201 import tablespace;

Query OK,0 rows affected, 1 warning (1.82sec)

mysql>

完毕后,查看表数据,已经恢复

mysql> select count(*) from sms_deduction_log_20191201;+----------+

| count(*) |

+----------+

| 97746 |

+----------+

1 row in set (0.04sec)

mysql>

六、可能遇到的问题

执行ALTER TABLE table_name DISCARD TABLESPACE;时

报错[Error Code: 1451, SQL State: 23000] Cannot delete or update a parent row: a foreign key constraint fails ()

这是由于有外键关联

SET foreign_key_checks = 0; --先设置外键约束检查关闭

SET foreign_key_checks = 1; --都执行完alter操作后再开启外键约束检查,以保持表结构完整性

先关闭外键约束,执行删除操作,然后再开启外键约束。

执行ALTER TABLE table_name IMPORT TABLESPACE;

报错Error Code:1812. Tablespace is missing for table

是因为copy的ibd文件没有赋权,需要chown mysql:mysql table_name.ibd --赋权限

idb 怎么回复mysql_mysql利用frm和idb文件恢复数据库相关推荐

  1. frm文件导入mysql5.7_使用frm,ibd文件恢复数据库文件,mysql5.7.31,centos7.5,20200813...

    使用frm,ibd文件恢复数据库文件共有3步,安装数据库,恢复表结构,恢复表数据 我实操的软件版本,mysql5.7.31,centos7.5,20200813,数据库展开597MB 一,安装数据库 ...

  2. mysql frm和ibd怎么恢复数据库_mysql数据库通过frm和ibd恢复数据

    放在阿里云服务器上的一台Linux云服务器被挖矿了,一个开源系统demo演示网站被人上传违规信息,站点也被阿里云屏蔽了.准备迁移数据并重置服务器,匆忙之间拷贝了mysql/data目录下的数据文件就把 ...

  3. mysql innodb ibd_MySQL innodb引擎下根据.frm和.ibd文件恢复表结构和数据

    记录通过.frm和.ibd文件恢复数据到本地 .frm文件:保存了每个表的元数据,包括表结构的定义等: .ibd文件:InnoDB引擎开启了独立表空间(my.ini中配置innodb_file_per ...

  4. MySQL利用.ibd文件恢复数据库

    MySQL利用.ibd文件恢复数据库 1.需要在新的数据库中新建一个与原来表格表结构相同的表,字段名称相同: 2.清空新建表的表空间 alter table <表名> discard ta ...

  5. MySQL 5.7 通过frm和ibd文件恢复数据

    MySQL 5.7 通过解析frm和ibd文件恢复数据 .frm文件存储表结构 .ibd文件存储数据 以恢复表IP_PATENT_APPLICANT_LIST为例, 有待恢复表文件IP_PATENT_ ...

  6. 利用frm和idb文件恢复mysql数据

    .frm和.idb文件是Mysql数据库使用InnoDB数据库引擎时产生的两个文件. ~表名.frm文件存储的相关表的表结构.索引等元数据. ~表名.idb文件存储的相关表中的数据记录. 第一步:下载 ...

  7. mysql innodb引擎丢失_【MySQL】InnoDB引擎ibdata文件损坏/删除后使用frm和ibd文件恢复数据...

    注意!此方法只适用于innodb_file_per_table独立表空间的InnoDB实例. 此种方法可以恢复ibdata文件被误删.被恶意修改,没有从库和备份数据的情况下的数据恢复,不能保证数据库所 ...

  8. mysql binlog elk_利用MySQL的binlog日志文件恢复数据库

    一.新建一个数据库test 在库里新建一个数据表test ,并插入几条数据 mysql>create database test CHARSET utf8; Query OK, 1 row af ...

  9. 宝塔面板使用.frm与.ibd文件恢复Mysql数据

    写这篇文章我是非常不情愿的,我现在是在写这篇文章,但是同时我也在恢复我服务器数据库的数据,出这篇文章也是在我的意料之外,由于我正在这件事类,我就出一版这样的mysql.frm.ibd文件数据恢复教程, ...

  10. PostgreSQL利用全备与WAL日志恢复数据库

    文章目录 基础备份--全备 使用pg_basebackup 参数 WAL日志的的备份 测试流程 将被数据文件全备 继续操作主库 配置recovery.conf文件 启动恢复实例 查看恢复情况 一般情况 ...

最新文章

  1. adb shell root
  2. 04springMVC结构,mvc模式,spring-mvc流程,spring-mvc的第一个例子,三种handlerMapping,几种控制器,springmvc基于注解的开发,文件上传,拦截器,s
  3. HDU4259(简单群置换)
  4. java三层架构项目事例_三层架构实例
  5. [导入]C#面向对象设计模式纵横谈(10):Decorator 装饰模式(结构型模式).zip(9.84 MB)...
  6. JS中对象创建的五中方式
  7. vxlan 资料及其在 neutron中的应用
  8. linux写参数文件,linux下纯C++读取参数配置文件
  9. Xcode7.0.1:升级Xcode7上传AppStore失败问题
  10. crash fault-tolerant protocols和Byzantine fault-tolerant protocols区别
  11. 统计SQL语句和存储过程
  12. 逆向动态调试之Ollydbg的使用
  13. linux 交叉编译器作用,Linux下交叉编译器学习
  14. Python处理txt文件
  15. ATX电源工作原理的学习
  16. 姐妹素数java_Java之姐妹素数
  17. Debian下的搜狗拼音安装个人心得
  18. 音乐计算机锦鲤抄,十首古风歌曲,锦鲤抄上榜,哪一首是你心目中的古风“神曲”?...
  19. [Java] 类和对象(简介,封装,内存机制,构造方法)
  20. GoLang之使用sync.Cond

热门文章

  1. ActiveMQ 默认用户名和密码
  2. 看什么书可以提高情商?提高情商的书籍排行榜
  3. QT在状态栏添加label
  4. 绵阳python培训_绵的繁体字怎么写_绵字有几笔、五行属性-幸运吧起名网
  5. DLNA开发Platinum引擎构建
  6. 深红色LaTeX PPT模板解释说明
  7. Xmind 2020 进阶教程|巧用图标,让你的思维导图活起来
  8. 心情整天都在郁闷浮云往事如云烟,撕心裂肺:伤感心情日志
  9. dpdk加速网络协议栈ANS用户手册
  10. 二元logistic回归、ROC曲线及cutoff值