mysql 数据被清空了怎么恢复

mysql 数据被清空了怎么恢复,第1张

以下情况可以恢复数据

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

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

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

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

在解决的过程中,以下几种尝试:1.如果开启了日志,直接mysqlbinlog 使用日志恢复即可。2.如果不是删除了一个表的部分数据,而是删除整个表,那么可以在删除后马上用磁盘数据恢复软件尝试恢复。(因为删除表后会有文件被删除,而删除表的部分数据,文件还是存在)3.找数据恢复的公司,使用工具分析ibdata1(分析过程参考一页一页查看有没有历史记录存在,使用ibdata1恢复数据,应该是在了解数据表结构的前提下,数据库除ibdata1外其他数据受损不能正常使用数据库时尝试,而不是删了表数据后恢复什么的。(事实上,这个文件是存储现有表数据的,其实也可以设置成每个表一个文件。)4.mysql下有ib_logfile0和ib_logfile1两个文件,其实这两个文件里,记录了Mysql的一些事物日志,用于事务的前滚后滚,是Mysql自身使用的,这个文件用文本工具打开后,有很多乱码,但却可以查找到被删除的少量数据的insert记录,极少数的乱码通过前后语句找出了原文,最终通过事物日志恢复了删除的文件。注:用事物日志恢复,需要几个前提。1:知道被删除数据的大概位置,不要这边查找,那边又不断有新数据插入。2:因为有很多乱码,适用于查找少量数据,而不是用作大量数据的恢复,浪费体力。3:如果二进制日志没开,没有备份,那么只能用这种方法恢复了。

本人习惯上把能安装在其他分区的应用程序尽量不安装在C盘,所以MySQL恢复起来很容易。

所有的应用程序都在E盘安装的,MySQL也不例外,所以需要恢复的话,执行下面几步就行:

1、系统 *** 作路径:需要重新配一下系统的环境变量,在path变量后面加上这一行 E:\MySQL\mysql-5.7.25-winx64\bin注意分号;

2、启动控制台,注意用超级管理员权限运行cmd,执行下列指令:

mysqld --install mysql --defaults-file="E:\MySQL\mysql-5.7.25-winx64\my.ini"

3、启动MySQL服务:net stop mysql


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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存