这里介绍一种简单的方法,就是开启binlog二进制日志,记录用户对mysql数据库的所有操作(除了查询),然后通过mysqlbinlog命令导出为sql文件(剔除drop语句),最后再恢复就行,下面我简单介绍一下操作过程,实验环境win10 mysql5.5,感兴趣的朋友可以尝试一下:
1.首先,开启binlog功能,这个需要修改mysql安装目录下的my.ini配置文件,在[mysqld]下面添加一行设置“log-bin = mysql-bin”就行,如下:
接着重启mysql服务,就可以在mysql数据目录下看到生成的日志记录文件—mysql-bin.000001和mysql-bin.index,其中mysql-bin.000001是日志文件,会自动顺序递增,记录每次数据库重启后用户的所有操作记录,mysql-bin.index是日志索引文件,记录所有的日志文件名称:
2.接着我们就可以模拟数据库误删的过程了,这里我先新建了一个db数据库,然后创建了一个test数据表,依次insert插入3条数,如下:
然后我们执行“drop database db”删除数据库,再“use db”时就会报错,如下,告诉数据库db不存在:
3.接着就是数据库恢复的过程,打开cmd窗口,运行“mysqlbinlog --no-defaults binlog日志文件路径(这里换成你的binlog文件)”命令,就可以看到我们重启数据库后所有的数据库操作记录,如下,每个操作都有唯一的对应位置,这里我们需要剔除掉drop语句,也就是恢复到958这个位置:
直接运行“mysqlbinlog --no-defaults --stop-position="958" binlog日志文件路径 > d:test.sql”命令,就可以导出958位置之前的所有数据库记录,并重定向为一个sql文件,如下,这里你也可以使用start-position参数指定导出的起始位置:
4.最后我们再连接mysql数据库,导入这个sql脚本就可以正常恢复数据了,如下,和原始插入的数据一样:
至此,我们就完成了mysql数据库的自动恢复。总的来说,整个过程非常简单,只要你熟悉一下上面的操作过程,很快就能掌握的,对于一些简单的数据恢复来说,完全够用,不过建议还是在日常开发过程中做好数据库备份,在生产环境中慎重使用drop等删除语句,网上也有相关教程和资料,介绍的非常详细,感兴趣的话,可以搜一下,希望以上分享的内容能对你有所帮助吧,也欢迎大家评论、留言进行补充。
做个数据备份表
先分析一下,为啥丢失数据,因为操作删,还是数据库挂了,因为操作删,可以做备份,做备份的原理就是,数据库主从复制,有mycat插件,原理就是用日志。达到主从复制,其次,如果是数据库挂了。首先mysql是持久化存储,重启就行,但是会丢失挂了未提交的事物。这得需要数据库意外的数据来支持数据库恢复数据。系统日志啊,所以个人觉得,日志很重要。
首先看看是什么丢失,是db 还是drop/truncate table ,如果这样可以用备份来恢复,如果是delete table 有备份可以用备份恢复,没有备份可以通过binlog 反项解析来进行恢复
- 上一篇: 店淘采集那些软件好用?怎么强开村淘,怎么做好店淘?
- 下一篇:
猜你喜欢
- 2023-03-21免费咨询发型造型师「如何成为一名造型师」
- 2023-03-21美妆工作室「如何自己干个人美妆工作室」
- 2023-03-21护肤品行业市场分析「护肤品行业数据分析」
- 2023-03-21一侧编发到耳后教程「如何把一侧头发固定在耳后」
- 2023-03-21化妆品佳收纳方法「化妆品太多如何收纳」
- 2023-03-21学化妆怎么聊天-学化妆如何
-
生活百科网创立与2018年,一直不断致力于免费提供生活,经济,健康,母婴等各类百科知识,帮助解答了5w多人,今后我们仍将一如既往的增加百科内容!
- 常见生活百科知识汇总
- 最近发表
- 标签列表