mysql数据库用户表里面的数据误删除后能恢复吗

mysql数据库用户表里面的数据误删除后能恢复吗,第1张

倒是有个思路,不过你的记录量太大,这个执行效率估计就有问题了。

我的思路是

1、先select

出来一个记录集,条件是点击单价,点击量,下载量,市场平均点击量一致的数据,另外一个最重要的条件就是选出行号最大的记录(因为你要保留一条,怎么用行号这个网上有很多说明,我就不说了),这样,你就可以获得,你需要保留的记录集了。

大概的语句是:

select

max(rec_no),a,b,c,d

from

table

where

a=b

and

a=c

and

a=d

group

by

a,b,c,d

a,b,c,d代表你的那几个字段,rec_no,如果你的表里没有这个字段的话,就要上网查一下怎么给mysql记录加行号,但是唯一担心的就是效率会慢,因为你的记录太多了

2、有了这个记录集,你可以有两种处理方式,一种是手工处理,把上面的结果集插入一个空表里,然后删除旧表,再把空表改名就可以了。另一种是写语句处理delete的时候,和你检索出来的数据集匹配,符合条件的留下,否则删除。

这个我没有实际的环境,仅仅提供个参考思路

1 找个别的机器安装个同版本的mysql或从已安装同版本的其他机器上(非同版本的也可以试下):

拷贝 mysql/data/mysql 目录到你的mysql/data/ 下吧

2 试着启动mysql服务,如果能启动了,理论上应该丢失的只有用户、授权等一些系统信息,不影响你的使用的数据;

如果不能启动,看错误日志,争取启动了。

3 赶紧把数据备份一份出来,重新把所有库(只是你后来创建的业务相关的库,不包括mysql库)都删了,重新导入一遍。理论上不这样也可以,但只是非生产重要的环境下。

4 重新做用户授权。

以下情况可以恢复数据:

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

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

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

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

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

mysqlbinlog F:/wamp/mysql-bin000045 > F:/testtxt

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

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

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

mysqlbinlog --start-position="123" --stop-position="531" F:/wamp/mysql-bin000045 F:/testtxt | mysql -uroot -p

以上就是关于mysql数据库用户表里面的数据误删除后能恢复吗全部的内容,包括:mysql数据库用户表里面的数据误删除后能恢复吗、mysql 中默认的"mysql"数据库 删了,有什么影响吗如果要恢复,应该怎么恢复、如何恢复宝塔面板mysql数据库中误删除的数据表等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址:https://54852.com/sjk/9843130.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存