mysql binlog二进制日志文件恢复数据

268 阅读1分钟

通常我们数据发生丢失或者数据误删除的情况下需要恢复数据

前提:需要开启binlog二进制日志文件 本次数据库名叫 test
操作步骤:

1、查看binlog日志位置
执行命令:show variavles like '%log_bin%'
log_bin_basename的值就是服务器的二进制文件路径
进入服务器对应的路径 binlog开头的就是二进制文件,根据文件时间挑选恢复数据的文件
我挑选了binlog.000111和binlog.000112

2、按时要恢复的时间点 提取需要恢复的数据,提取后文件为test1.sql test2.sql
执行命令(根据需要回复的日志文件数量执行):
mysqlbinlog -d test --start-datetime="2023-11-27 00:00:00" --stop-datetime="2023-11-27 00:00:00" binlog.000111 > test1.sql
mysqlbinlog -d test --start-datetime="2023-11-27 00:00:00" --stop-datetime="2023-11-27 00:00:00" binlog.000111 > test2.sql

3、确保数据库的数据与start-datetime的时间一致。如果无法保证一致可以将时间修改为数据库创建前并获取对应的二进制文件即可完全恢复 执行命令:
mysql -uroot -p111111 test < test1.sql;
mysql -uroot -p111111 test < test1.sql;

4、执行完成后查看数据库数据即可