mysql删除数据库后怎么恢复

mysql删除数据库后怎么恢复,第1张

使用mysql中的日志功能。

首先:将最近的二进制类型的日志文件存成文本文件导出,命令如下:

mysqlbinlog

F:/wamp/mysql-bin.000045

>

F:/test.txt

其次:打开保存的txt文件,文件格式如下:

其中at

1099代表第1099个命令(姑且这么记),查询这些命令,看看需要回复的命令在什么地方,然后执行命令。

最后:执行回复命令,如下:

mysqlbinlog

--start-position="123"

--stop-position="531"

F:/wamp/mysql-bin.000045

F:/test.txt

|

mysql

-uroot

-p

这样就可以完成数据库的回复了!!!

以下情况可以恢复数据:

1 innodb引擎表开启了事务,执行dml语句,比如delete、update、insert之类,并且没有提交即commit *** 作的话,可以执行rollback进行回滚恢复。如果是ddl *** 作,如drop、create、alter之类的 *** 作时无效的

2 在进行删除 *** 作之前有备份,比如mysqldump,物理备份数据文件之类的 *** 作,那么可以恢复到删除前的数据

3 如果你的删除 *** 作是直接对data下的文件进行删除,注意,不是粉碎文件 *** 作,那么你可以尝试用磁盘恢复软件来找回被误删的数据文件;

除以上情况,其他真的是没法恢复了,不过貌似很多公司号称能够恢复,要收费,具体他们怎么恢复我就不晓得了。

情况1、如果你有该库的整体备份或对这个表的单独备份,那么也许可以恢复。可以将最新的备份恢复到一个备用的服务器上,导出那表的内容,完成恢复

情况2、如果没有任何备份,那就基本没戏了。一般删除表的 *** 作是drop table,日志中不会记录删除具体行数的记录。表所对应目录下的文件已经被删除(innodb独立表空间,单表归为一文件)。同样的情况适用于myisam数据库引擎,对应的myd/myi/frm文件均被删除。这不像windows还有垃圾箱,是不可逆的 *** 作

此外,对数据库最危险的 *** 作就是对表进行删除行、删除表或删库的 *** 作了,所以任何对数据库有高危风险的 *** 作前最重要的就是备份!备份!再备份!


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/6131813.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-15
下一篇 2023-03-15

发表评论

登录后才能评论

评论列表(0条)

保存