第一步:确认数据库是否开启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工具自带说明
更多推荐
三步恢复Mysql数据库误操作数据
发布评论