mysql中ibd文件的修复

  https://www.toutiao.com/i6442804114094031374/?tt_from=weixin&utm_campaign=client_share&wxshare_count=1×tamp=1546047462&app=news_article&utm_source=weixin&iid=54622526127&utm_medium=toutiao_android&group_id=6430054982351749377

  总体思路:我们会在一个测试环境去处理受损的ibd文件,然后通过导出的数据,导入到目标数据库中去。

(1)得到测试环境下的表的tablespace id 

(2) 伪装成正确 的tabspace id 将有数据的文件覆盖测试环境的这个表文件

(3)innodb_force_recovery=6 后重启数据库,然后数据库是只读的。

(4)可以通过mysqldump-u -p db --table -t > 1.sql只导出数据;也可以直接mysqldump-u -p db --table -t | mysql -uroot -p888 targetdb 即可(到数据库就好,因为导出的语句是带有表名的,insert into table1....)

注意事项

(1) 旧的数据库的的Mysql版本与测试环境的mysql版本不一致,会导致datetime等字段的数据变得不能识别。所以最好旧的数据库版本与测试版本保持一致 。

(2)从测试版 到新数据库通过(4)进行,应该没有太多的版本要求。

(3)测试环境配置成5.6的好像有点问题,始终无法认识修改后的ibd文件!!!!!直接导致方案不可用。

你可能感兴趣的:(mysql)