MySQL binlog恢复数据

1,先确保my.ini已经配置了binlog:

# binlog
log_bin = D:/mysql-5.6.21-winx64/log/binlog/mysql-bin.log
log_bin_index = D:/mysql-5.6.21-winx64/log/binlog/mysql-bin.index
log_error = D:/mysql-5.6.21-winx64/log/mysql-error.log
sync_binlog = 1
expire_logs_days = 7
binlog_format = MIXED

2,导出指定日期内的所有执行过的sql语句

mysqlbinlog --start-datetime="2010-05-21 06:00:00" --stop-datetime="2010-05-21 07:00:00" D:/mysql-5.6.21-winx64/log/binlog/mysql-bin.000001 > mybinlog.sql

3,接下来有两种恢复方式

A,按照日志的行数来导,例如假设上述步骤中到处的mybinlog.sql文件有1000行,你检查确定后,需要恢复200行到700行之间的数据,那么命令如下:

mysqlbinlog --start-position=200 --stop-position=700 D:/mysql-5.6.21-winx64/log/binlog/mysql-bin.000001 | mysql -uroot -p

B,按照时间来恢复,例如假设当前是2015年6月9日,你先让数据恢复到2015年6月1日 00:00:00时刻,那么命令如下:

mysqlbinlog --start-datetime="2015-06-01 00:00:00" D:/mysql-5.6.21-winx64/log/binlog/mysql-bin.000001 |mysql -u root -p

猜你喜欢

转载自aigo.iteye.com/blog/2218337