第一步:确认数据库是否开启binlog模式

查看相关变量

show variables like '%log_bin%'

第一个变量log_bin是ON说明了数据库开启了log_bin。说明我们可以将历史操作数据恢复。

第二步:找到binlog文件

 变量中log_bin_basename 指向了bin_log文件的目录/var/lib/mysql/和名称前缀mysql-bin。有了目录我们就能取到bin_log文件啦。

异常情况处理方式1:如果变量查不到,可以到数据库服务器输入show master status

有了路径我们就可以直接进入对应目录去拿文件;有了文件名,我们就能通过find / -name [filename]或者whereis [filename]获取到binlog文件

看到mysql-bin.000001文件了么,这里就是我们要取的文件。

第三步:转换成可读文件

使用系统默认安装的工具mysqlbinglog,命令如下

mysqlbinlog --base64-output=decode-rows -v /var/lib/mysql/mysql-bin.000001 |sed -n p> update1.txt

我们打开update1.txt文件

历史操作都在里面,就不一一分析了,有了数据还怕啥,各种脚本用起来。替换掉对应的字符,数据就回来了

PS:1、mysqlbinlog工具是有版本要求的,如果bin-log文件由特定版本生成,必须要特定版本的mysqlbinlog

2、日志文件一般设置了大小和时间段,会有多个文件记录。如需要根据具体时间定位日志,可找到对应的bin-log文件并在解析时增加参数,具体查看mysqlbinlog工具自带说明

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐