mysql数据库通过二进制 -【恢复数据记录】

1.修改配置文件

vi /etc/my.cnf

log-bin = binlog

systemctl restart mysqld

  mysql -uroot -p123456

mysql> show variables like 'log_bin' ;

mysql> show VARIABLES like '%log_bin%';

ls /var/lib/mysql/

2.创建数据库

create database mytest;

use mytest;
create table t(a int PRIMARY key)ENGINE = INNODB DEFAULT CHARSET=utf8;

flush logs;


mysqlbinlog --no-defaults /var/lib/mysql/binlog.000001

[root@localhost ~]# ls /var/lib/mysql/

数据创建日志和记录日志

 3.插入数据

use mytest;
insert into t select 1 union all select 2 union all select 3;
flush logs;

数据插入日志记录

5.删除数据库

drop database mytest;
flush logs;

删除记录日志

6.恢复数据

mysqlbinlog --no-defaults /var/lib/mysql/binlog.000001 /var/lib/mysql/binlog.000002 | mysql -uroot -p123456

数据恢复成功

 二. 按时间点恢复数据

create table t2(a int PRIMARY key)ENGINE=INNODB default CHARSET=utf8;

insert into t2 values(1),(2),(3),(4),(5);

删除数据
delete from t2 where a < 4;
flush logs;

其中创建记录和删除记录我们要恢复到pos997

 删除库mytest,回到最原始的地方

drop database mytest;

按时间恢复记录

mysqlbinlog --no-defaults --start-position="4" --stop-position="997" /var/lib/mysql/binlog.000004  | mysql -uroot -p123456

数据恢复

猜你喜欢

转载自www.cnblogs.com/zsl-find/p/9939426.html