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

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

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

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

恢复整个数据库首先,如果要恢复的数据库是含有授权表的mysql数据库,将需要使用--skip-grant-tables选项运行服务器。否则,服务器将抱怨无法找到授权表。在恢复表之后,执行mysqladmin flush-privileges 来告诉服务器加载授权表,并用它们启动。将原数据库目录的内容拷贝到其他的地方。例如,您可能会在稍后用它们进行崩溃表的事后分析检查(post-mortem examination)。用最新的备份文件重新加载数据库。如果您打算使用由mysqldump 加载的文件,则需要将它们作为mysql的输入。如果打算使用从数据库中直接拷贝的文件(如,用tar 或c p),则将它们直接拷贝回到该数据库目录中。但是,在这种情况下,应该在拷贝这些文件之前关闭服务器,然后再重新启动它。用更新日志重做在进行备份后又修改了数据库表的查询。对于所有可用的更新日志,可使用它作为mysql的输入。指定--one-database 选项,使mysql只对想要恢复的数据库执行查询。如果您知道需要使用所有的更新日志文件,可在包含日志的目录中使用下列命令:% ls-t-r-l update(0-9) | xargs cat | mysql--one-database db_namels 命令产生更新日志文件的单列列表,更新日志文件根据服务器生成的顺序进行排序(要知道,如果您修改了其中的任何文件,排序的顺序都将改变,这将导致更新日志按错误的顺序使用)。您很可能必须使用某些更新日志。例如,如果自备份以来所产生的日志命名为update392、pdate393 等等,可以重新运行它们中的命令:% mysql--one-database db_name < updata392% mysql--one-database db_name < updata393…如果正在运行恢复并打算使用更新日志恢复由于失策的DROP DATA BASE、DROPTABLE或DELETE 语句而丢失的信息,应确保先从更新日志中删除这些语句。恢复单个的表恢复单个表是很困难的。如果有通过mysqldump 生成的备份文件并且它恰好不包含您想要的表数据,则需要抽取相关的行并用它们作为mysql的输入,这部分较容易。困难的是抽取应用于该表的更新日志的片段。您会发现: mysql_find_rows 实用程序对这方面有帮助,它可以从更新日志中抽取多行查询。另一种可能性是用另一个服务器恢复整个数据库,然后将所要的该表的文件拷贝到原始数据库中。这实际很容易!在将文件拷贝回数据库目录时,应确保原始数据库的服务器关闭。

1、source命令

1)打开开始菜单->程序->MySQL->MySQL Command Line Client,输入MySQL的root密码。

2)然后输入use 数据库名;进入对应的数据库,再用source 备份文件具体路径;命令导入备份文件。注意,在这里的命令后面都要加;分号,截图如下:

2、mysql命令

1)如果是Windows系统,请在命令行模式下进入mysql的bin目录,如D:\Program\mysql41\bin。如果是Linux系统,请直接看下面的步骤。

2)执行mysql命令导入数据库,命令格式为:

mysql -u用户名 -p密码 数据库名<备份文件具体路径

比如:mysql -uroot -pabc123 mydb<filesql,其中用户名和密码也可以是具体数据库的,不一定要root的。

二、数据库的导出(备份)

一般使用mysqldump命令

1)如果是Windows系统,请在命令行模式下进入mysql的bin目录,如D:\Program\mysql41\bin。如果是Linux系统,请直接看下面的步骤。

2)执行mysqldump命令导入数据库,命令格式为:

mysqldump -u用户名 -p密码 数据库名>备份文件具体路径

以上就是关于mysql数据库用户表里面的数据误删除后能恢复吗全部的内容,包括:mysql数据库用户表里面的数据误删除后能恢复吗、如何恢复宝塔面板mysql数据库中误删除的数据表、怎样备份/还原MySQL数据库 之 MySQL Workbench等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

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

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

发表评论

登录后才能评论

评论列表(0条)

    保存