使用 mysqlbinlog 恢复数据的方法

2,880 阅读1分钟
原文链接: www.36nu.com

binlog就是一个记录SQL语句的过程,和普通的LOG不一样的是二进制存储,普通的是十进制存储。

1、在mysql配置文件开启bin-log

在mysql配置文件中添加如下一行(如果已经存在次行,将前面的注释去掉即可)

然后重新启动MSYQL服务。二进制文件里面的东西显示的就是执行所有语句的详细记录,不会记录SELECT和没有实际更新的UPDATE语句。

2、查看自己的BINLOG的名字

MySQL [ning]> show binlog events;
+------------------+-----+-------------+-----------+-------------+---------------------------------------+
| Log_name         | Pos | Event_type  | Server_id | End_log_pos | Info                                  |
+------------------+-----+-------------+-----------+-------------+---------------------------------------+
| mysql-bin.000004 |   4 | Format_desc |         1 |         120 | Server ver: 5.6.29-log, Binlog ver: 4 |
| mysql-bin.000004 | 120 | Stop        |         1 |         143 |                                       |
+------------------+-----+-------------+-----------+-------------+---------------------------------------+
2 rows in set (0.00 sec)

3、使用mysqlbinlog 工具操作binlog
将binglog导入test.txt文件

mysqlbinlog --start-position=120 --stop-position=143 /data/mysql/mysql-bin.000004 > test.txt

将binglog直接导入数据库

mysqlbinlog --start-position=120 --stop-position=143 /data/mysql/mysql-bin.000004 | mysql -uroot -p