练手mysqlbinlog日志恢复数据(centos6.5 64,mysql5.1)

练手mysql bin log日志相关

系统是centos 6.5 64 阿里云的服务器 

mysql版本5.1

1 如何开启bin-log日志?

vi /etc/my.cnf

[mysqld]

log-bin=mysql-bin

默认开启

 

2 查看日志文件

ls /var/lib/mysql

记录了所有的数据库变化操作(数据增删改,创建表等)

3查看是否开启? 

先进入mysql中 然后使用如下命令

show variables like "log_%";

log_bin   | ON

 

4 bin-log日志刷新

mysql>flush logs;

开始一个新的bin-log日志,记录此刻以后的操作

ls /var/lib/mysql/

相当于从新拿一个笔记本,从第一页的位置开始记录以后的日志,之前的笔记本,不再使用。

5 查看当前使用的bin-log信息

mysql> show master status;

 

一个新的笔记本,默认从106的位置开始记录。(mysql5.2从106开始记录)

Position记录的是位置信息,如果执行增删改语句,位置将发生变化。

6 查看bin-log日志内容

cd /var/lib/mysql/

/usr/bin/mysqlbinlog mysql-bin.000001

 

7 新建一个数据库做导入测试

create database test;

create table t2(id int(8) not null primary key auto_increment,name varchar(20) not null );

插入几条数据

insert into t2 (name) values('test1');

insert into t2 (name) values('test2');

insert into t2 (name) values('test3');

insert into t2 (name) values('test4');

8 查看下日志文件

cd /var/lib/mysql

 /usr/bin/mysqlbinlog mysql-bin.000001

查询到最后1个 插入语句是从803开始到903结束的

9 到数据库中删除 test3 和test 4

10 再次查看bin log  日志

可以很清晰的看到 删除语句  2个delete

11 那么开始准备恢复

./mysqlbinlog --no-defaults --start-position 803 --stop-position 903 /var/lib/mysql/mysql-bin.000001 |mysql -uroot -ppassword  test

执行成功

开始位置  结束位置  binlog文件路径|mysql 用户名密码  最后一个是数据库的名称

12 去数据库查看是否已经恢复test3和test4的数据

 

恢复成功

总结:

最后介绍个bin_log的操作: 

 
清空现有的所用bin-log 

reset master

原文地址:https://www.cnblogs.com/baker95935/p/6529940.html