mysql从ibd文件恢复数据
2021-10-30数据库冷备份无法启动,但是有无数个idb表文件
1、准备一个新的mysql库,创建一个空db,创建需要恢复的table.
2、停止mysqld
3、vim -v newtable1.idb
:%!xxd会改为16进制格式
有一行包含表id,00000020: 0000 0000 3c94 0000 3c94 0000 0000 0000
将旧表文件需要修改为新表id,
4、vim -v oldtable1.idb
:%!xxd会改为16进制格式
找到同行,替换为3c94
:%!xdd -r
:wq存储后退出
5、用修改过的oldtable1.idb替换newtable1.idb
6、修改/etc/my.cnf
[mysqld]
innodb_force_recovery=6
innodb_purge_threads=0
7、systemctl restart mysqld.service
8、查询数据或者导出数据
9、恢复到你需要的数据库