记录一次mysql勿删数据使用mysqlbinlog全备份恢复的实际操作
匿名 · 更新于 2021/12/9
前提:请确认开启了binlog日志
建议:所有操作在linux系统进行,防止出现乱码等异常情况
操作步骤如下:
第一步、首先关闭数据库服务,防止新数据产生,然后在msyql数据存储目录下找到最近一次全备份binlog文件,在这里我找到的是mysql-bin.000005
第二步、将mysql-bin.000005拷贝到单独的一个临时目录,防止误操作原日志文件
第三步、将binlog日志转为sql文件(重点步骤),在临时目录下执行如下命令
mysqlbinlog mysql-bin.000005 --database=dbname --start-datetime='2021-10-09 17:00:00' --stop-datetime='2021-12-06 00:00:00' --base64-output=decode-rows -v > dbname.sql
命令说明如下,这里我们选择只导出要恢复的数据库的sql日志,并设置日志起始结束时间,这里是进行的全量备份恢复,也就是从数据库创建开始到误操作前的时间段,越接近最新数据
mysqlbinlog binlog日志文件 --database=数据库名称 --start-datetime='日志起始时间' --stop-datetime='日志结束时间' --base64-output=decode-rows -v > 数据库名称.sql
第四步、恢复数据(关键步骤),建议此操作在空数据库进行,防止覆盖当前正式数据库,防止有错误sql语句产生导致恢复数据进程中断,使用-f忽略运行错误
mysql -u root -p -f < dbname.sql
第五步、如果没有意外,到此为止你已经可以在数据库看到恢复的数据信息了,后续根据情况进行数据还原操作
