练手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