当mysql数据被误操作删除后,数据恢复的思路。

MYSQL数据恢复

当mysql的数据被误操作删除后

大致有如下几种恢复思路

一.直接还原

如果数据库每天都有用mysqldump去备份,那么当数据丢失之后,只需要把sql直接导入数据库即可。

mysql  -uroot  -ptqw961110  <  backup.sql

二.通过bin-log还原

但是遗憾的是,有时候数据库的数据还没来得及备份就被误操作删掉了。那么这时候bin-log就起到很好的作用了。

bin-log在主从复制上发挥着很重要的作用,主要是记录主库最新的各种操作,并告诉从库,让从库执行同样的操作,从而实现同步复制。

因此,当数据库数据被误删了,我们可以将bin-log里面的操作给数据库再执行一次。

在执行还原操作前,要先停止数据库,避免有新的数据写入。

假如不确定丢失的数据是在什么时段丢失的,建议进行一次全备操作。

mysqlbinlog --no-defaults -d wordpress mysql-bin.000014 > bin.sql

把所有的bin-log汇总到bin.sql

然后把drop语句剔除掉(又或者可以针对误操作的语句进行针对性的搜索,搜索出误操作语句然后剔除掉)

cat bin.sql | grep -i -v "drop" > bin.sql

最后把bin-sql导入mysql即可。(操作前注意先把现有的数据进行备份)

三.如果还原时主库还有数据需要写入不能停库

方法步骤与第二种方法相似,也需要把bin-log变成sql,剔除drop语句。

然后把bin-sql导入到从库里面。

带主库写入数据完毕

刷新主库bin-log

将新的bin-log解析成sql导入到从库中。

然后将服务切换到从库,让从库提供业务。

但是,无论最后能不能恢复,误操作导致数据丢失的后果还是很严重的。小伙伴们平时一定要注意数据库的操作权限管理。