求教高手,myisam表记录被人恶意删除,myd文件还存在数据如何恢复 MySQL myisam表记录被人恶意删除,里面存在重要数据,myd文件里记录还在,如何恢复这些数据。如有高手请加1416217084,面谈,可以RMB交易 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 在MYSQL中是否能打开此表? 记录被删除? 能打开此表,结构全部完好,但数据被人用delete from xxx删除了。楼上的有办法吗,可以QQ联系,我可以给报酬 呵呵,没有打开日志、没有备份,只有用undelete easyrecover之类的恢复,看看能否成功 undelete easyrecover是恢复文件用的,我是数据表的记录被人delete了,数据表文件还在啊 mysql中的myisam表在正常情况下执行delete 指定删除的记录实际上只是在索引文件中做了删除标记,同时也将数据文件中对记录的头几个字节改写, 但这几个字节具体的与入内容不清楚. 通过我研究数据文件, 发现了几种数据类型保存的格式. varchar: 在该类型数据开始的位置有一个字节来指出后面多少个字节是该字段的内容, 但是有一个例外就是如果后面的内容与varchar字段指定的长度完全相等时,就没有开头的这个字节了. text: 这个基本上与varchar类型一样, 但是在开始是由两个字节来指出后面的数据长度的. 而且是高位在前,低位在后. datetime: 为8个字节,同样是低位在前,高位在后, 将其转化为long值后就是yyyymmddhhmmss的格式的数据. 由于我要恢复的表中只有这几种数据类型,所以对其他的类型没有研究. 知道了数据储存的格式, 就可以分析数据文件来读取记录了. 需要注意一点就是如果你在删除数据库插入了新的数据, 那么就有可能将原来的数据覆盖掉. 所以应该在删除出错后立即恢复才能恢复出大部分数据. 你的文件都在,所以无法通过磁盘恢复之类的去恢复什么文件。 你马上复制出的文件已经是删除后的了,所以也没有用处。恢复记录的最好时机已经被你错过,就是马上停掉MYSQL和你的操作系统,然后到硬盘扇区去找数据,但是现在你的操作系统在后续磁盘读写中已经破坏了那些以前被这张表占用的磁盘扇区。所以恢复的可能性已经很小。如果你有打开BINLOG,或有以前的备份,则想办法恢复,如果没有什么备份或日志,则基本上没什么机会了。 需要很多时间,找一个懂MYISAM文件结果的人,然后直接在磁盘一个一个扇区找数据,再合并在一起,做必要的修改后生成新的文件。但对于已经可能被你的操作系统或其它程序重写过的扇区没无法。这时就只能跳过这些扇区中的记录。但这个人必须熟悉MYISAM的文件格式,当然你可以现在下载它的原代码,查看MYISAM的文档说明来研究其文件格式,然后磁盘上这么多扇区,你需要进行搜索分析,找出碎片。 这工作和把一个打碎的花瓶再拼起来一样。时间,技术,耐心。 MySQL中使用Navicat删除外键再添加外键的时候总是报错? mysql安装问题,帮忙看下,感激不尽 字符串分割 数据库转存出错 MSsql存储过程转换Mysql存储过程失败 如何向Mysql数据库中插入30万条记录的语句 请问在VC中利用libmysql.dll提供的API,如何存储blob类型的数据? 为什么打开一张表后总是出现错误提示? MySql 存储过程使用游标循环插入数据问题 求教这条SQL查询语句要怎么写 为何这个min无法执行 mysql版本细微区别在哪里/
通过我研究数据文件, 发现了几种数据类型保存的格式.
varchar: 在该类型数据开始的位置有一个字节来指出后面多少个字节是该字段的内容, 但是有一个例外就是如果后面的内容与varchar字段指定的长度完全相等时,就没有开头的这个字节了.
text: 这个基本上与varchar类型一样, 但是在开始是由两个字节来指出后面的数据长度的. 而且是高位在前,低位在后.
datetime: 为8个字节,同样是低位在前,高位在后, 将其转化为long值后就是yyyymmddhhmmss的格式的数据.
由于我要恢复的表中只有这几种数据类型,所以对其他的类型没有研究.
知道了数据储存的格式, 就可以分析数据文件来读取记录了. 需要注意一点就是如果你在删除数据库插入了新的数据, 那么就有可能将原来的数据覆盖掉. 所以应该在删除出错后立即恢复才能恢复出大部分数据.