mysql 由frm和ibd恢复数据

同事在生产上误删了数据,也没有记住那几条数据的内容,无奈找到后台要求恢复。一开始想到的就是通过mysql备份文件(frm和ibd)和binlog,但是binlog是记录sql语句的日志,可能并不会精确到字段信息上,所以就直接尝试通过备份文件进行操作。

安装MySQL Utilities
https://dev.mysql.com/downloads/utilities/

终端执行:mysqlfrm --diagnostic myfile.frm,得到表结构,期间可能会出现ImportError: No module named connector的错误,强烈建议从官网下载驱动https://dev.mysql.com/downloads/connector/python/

CREATE TABLE `mytable` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY `PRIMARY` (`id`)
) ENGINE=InnoDB

mysql> CREATE mytable (int i);
mysql> ALTER TABLE mytable DISCARD TABLESPACE;
然后把ibd的备份文件复制到mysql的数据目录下,覆盖之前的ibd文件,mac下mysql数据文件路径/usr/local/mysql/data
mysql> ALTER TABLE r IMPORT TABLESPACE;SHOW WARNINGS;

功成

posted @ 2018-02-08 15:57  微波~  阅读(142)  评论(0编辑  收藏  举报