rm -rf  mysql数据库文件

  误删  mysql数据库文件,别急,试试这个方法


 前一段时间,公司部门使用禅道维护项目信息,使用的是免费版的,让我负责维护。那天也忘了是啥原因了,就看服务器上有一个文件夹感觉没啥用,就rm -rf 彻底给删除了。删除以后突然想起这可能是禅道的数据文件,确实如此。当时那个悔恨啊,真想扇自己几巴掌,但是没办法已经删除了,想办法恢复吧。跟领导汇报了一下,领导说应该有备份,顿时感觉有希望了。但是很快发现备份的数据恢复不出来。这是悲哀中的悲哀啊。无奈只能自己试着恢复了。毕竟也不是专业做这个的呀,从网上搜了下,有好多收费给恢复的。但是涉及到公司项目信息不能泄露,也不能找外援了。只能自己找方法了。

这个是分两个步骤,第一是要恢复数据文件,第二是恢复mysql数据。

1、恢复数据文件:

  我从网上找到了一个开源的工具 TestDisk。这个软件确实很牛。软件地址https://www.cgsecurity.org/wiki/TestDisk_Download 操作指南https://www.cgsecurity.org/wiki/Testdisk_%E6%93%8D%E4%BD%9C%E6%8C%87%E5%8D%97#.E8.BF.90.E8.A1.8C_TestDisk_.E7.A8.8B.E5.BA.8F;按照说明步骤,我看到了自己删除的文件,真是太惊喜了。

其中一部分文件没有恢复,万幸的是Mysql的data目录下面的数据还存在,数据库是不完整了,只能将数据弄到本地进行数据抢修;

2、恢复数据:

      禅道开源用的是mysql5版本,我在本机安装了5版本,开始安装上数据库后,创建相同名称的数据库,将数据文件放进去,数据没有恢复过来。后来发现数据库的存储格式不正确,禅道用的是MyISAM格式进行存储的。其中有三个文件:

  • .frm 表示数据表结构,可以理解为Create Table

  • .MYD 表示数据表的实际数据内容,就是记录集,My data的缩写估计。

  • .MYI 表示数据表的索引结构,在Navicat下可以看到每个表都是自己的索引,这个就是存它用的。

    这三个文件不能完全覆盖,需要先建一个数据库名称和源数据库名称一致,找来源程序的建表语句(万幸是开源的,有建表语句),然后把每个表的.MYD ,.MYI文件覆盖,然后flush tables(需要执行一次 flush tables; 才会生效,因为该数据表的文件句柄已经打开了,所以需要刷新一下

    );  简直是欣喜若狂,数据找回来了。

至此,一次惊心动魄的数据删除,又恢复的过程完成了,记录下来,也许对你有用。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

秉烛解毒

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值