在此之前还是强烈建议大家进行定时备份,不然数据量多的话真的会有点emo的,好啦进入正题
操作背景:服务器windows server2012 数据库MySQL8.0
本人情况很奇葩,之前是备份了目标表的转储sql,但是我不知道是什么时候备份的结构sql,在我执行备份sql的时候选择了结构的sql运行完之后发现,哦豁数据不见了,那没办法只能通过日志恢复,如果没有开启数据库日志那就直接准备跑路吧 好啦进入正题
Mysql Binlog 简介
Mysql Binlog是二进制格式的日志文件
Binlog是用来记录Mysql内部对数据库的改动(只记录对数据的修改操作),主要用于数据库的主从复制以及增量恢复
首先我们得知道我们需要恢复的数据运行记录存在于那个log文件下,每次启动mysql服务,log开启情况下都会生成一个binlog文件,该文件位于mysql安装目录data文件夹下如图:
文件显示的日期为最新更新日期,因为我是后面有启动过mysql所以我定位我的操作是存在于binlog000028中
- show master status; 【查看当前正在写入的binlog文件】
当然这个查询到的binlog不一定就是自己需要恢复的目标log视实际情况而定