您好,登錄后才能下訂單哦!
Mysql5.7利用frm與ibd恢復數據
1、新建一個同名數據庫,并且在里面新建一張表同名的表,字段隨意。
---如果有原來表的表結構,那這步可以省略
將my.cnf配置文件增加innodb_force_recovery=6
2、把備份的.frm文件覆蓋新建表的.frm文件,修改文件屬主和權限,重啟數據庫,這個時候會在err文件提示你表結構的字段數不一致
3、重復再新建一張表同名的表,字段數和提示的一樣多,字段名字類型隨意
4、把備份的.frm文件覆蓋新建表的.frm文件,修改文件屬主和權限,重啟數據庫;這樣表結構就恢復出來了。
5、根據表結構,再重建新的表,指定表的ROW_FORMAT屬性,ROW_FORMAT=COMPACT;
CREATE TABLE ty (
id bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主鍵',
valid int(11) DEFAULT '1' COMMENT '是否有效 1:有效 0:無效',
rel varchar(25) DEFAULT NULL,
PRIMARY KEY (id)
) DEFAULT CHARSET=utf8 ROW_FORMAT=COMPACT;
這樣,表結構就算是恢復完了。
6、恢復數據
在指定的數據庫中執行丟棄表空間命令
alter table ty discard tablespace;
7、拷貝原來的ibd文件,并覆蓋新建表ibd,并修改權限
chown mysql.mysql ty.ibd
8、導入表空間
alter table ty import tablespace;
這樣整個數據就恢復回來了。
---------End-By-TangYun-----2019.10.14--------------
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。