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