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导入到从库中。
然后将服务切换到从库,让从库提供业务。
但是,无论最后能不能恢复,误操作导致数据丢失的后果还是很严重的。小伙伴们平时一定要注意数据库的操作权限管理。