mysql通过数据文件恢复数据方法

情况描述:服务器硬盘损坏,服务器换了个新硬盘 ,然后老硬盘插在上面。挂载在这台机器。可以从老硬盘里面拿到数据。只拿到了里面的mysql数据文件夹,把数据文件夹覆盖新的服务器mysql数据文件夹 启动报错!!!报错!!!错!!!

数据文件如下:

于是觉得不能使用覆盖文件的方式还原数据,得使用科学方法恢复。google之……

找到解决办法如下:

可以发现数据目录下有对应数据库名称的文件夹,文件夹下有很多 表名.ibd 文件,这些文件其实就是数据,我们要利用它们来恢复

恢复步骤:

1.在新库里面创建结构相同的数据库和表(这个可以根据服务器备份数据或本地数据库来弄)

2.使用  ALTER TABLE test DISCARD TABLESPACE; 丢弃表空间(test=表名,需要对每张表执行一次该命令,可以先在本地把每条命令编辑好 一次执行)

  PS:执行完后发现新库数据文件夹里 tsst.idb 已被删除

3.把老数据文件夹下的 test.idb 文件复制到新数据文件夹下(test=表名,需要对每张表执行一次该操作)

4.再执行 ALTER TABLE test IMPORT TABLESPACE;  导入表空间(test=表名,需要对每张表执行一次该命令

然后数据就恢复了。可以愉快的玩耍了~~~~

猜你喜欢

转载自www.cnblogs.com/yzeng/p/9020307.html