MySQL数据库误操作,将数据库恢复到误操作之前,通过二进制日志文件恢复数据到误操作之前。
查看数据库二进制日志文件:
mysql> show binlog events in 'mysql-bin.000001';
依据上图,退出数据库,执行mysqlbinlog命令,截取二进制日志文件数据/data/3307/mysql-bin.000001,所在的起始位置号(--start-position)120和结束位置号(--stop-position)545,并保存
[root@mv171 3307]# mysqlbinlog --start-position=120 --stop-position=545 /data/3307/mysql-bin.000001 >/tmp/binlog28.sql
进入数据库,先执行命令“set sql_log_bin=0;”目的是将停止二进制日志写入到二进制文件。
mysql> set sql_log_bin=0;
Query OK, 0 rows affected (0.00 sec)
执行source 上述mysqlbinlog命令执行保存的binlog28.sql文件,恢复数据。
mysql> source /tmp/binlog28.sql
Query OK, 0 rows affected (0.00 sec)
Query OK, 0 rows affected, 1 warning (0.00 sec)
Query OK, 0 rows affected (0.00 sec)
Query OK, 0 rows affected (0.00 sec)
......
在恢复二进制日志可写入到二进制日志文件:
mysql> set sql_log_bin=1;
Query OK, 0 rows affected (0.00 sec)
这时候数据恢复到误操作前状态已经做完。