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
数据恢复