mysql利用binlog恢复数据
简介
mysql的二进制日志
binlog
可以说是mysql最重要的日志,它记录了所有的DDL和DML语句(除了数据查询语句select、show等),以事件形式记录,还包含语句所执行的消耗时间,mysql的二进制日志是事务安全型的。binlog的主要母的是复制和恢复
使用场景
- MySQL主从复制:MySQL Replication在Master端开启binlog,Master把它的二进制日志传递给slaves来达到master-slave数据一致的目的
- 数据恢复:通过使用
mysqlbinlog
工具来恢复数据
实现
- 连接数据库
mysql -uroot -p123456
- 查看binlog日志状态
binlog日志开启状态为ON
- 开启binlog
mysql配置文件增加这一行log-bin=mysql-bin
重启mysql
可以看到 log_bin 已经开启, 同时可以看到存储的位置在 E:/phpstudy_pro/Extensions/MySQL5.7.26/data/
目录 , 前缀是 mysql-bin
查看binlog日志文件
show master logs;
创建binlogtest表
CREATE TABLE IF NOT EXISTS `binlogtest`( `id` INT UNSIGNED AUTO_INCREMENT, `title` VARCHAR(100) NOT NULL, PRIMARY KEY ( `id` ) )ENGINE=InnoDB DEFAULT CHARSET=utf8;
插入数据
INSERT INTO `binlogtest` ( title ) VALUES ( 1 ); INSERT INTO `binlogtest` ( title ) VALUES ( 2 ); INSERT INTO `binlogtest` ( title ) VALUES ( 3 );
查看数据
#查看数据库 show databases; #使用binlog数据库 use binlog; #查看数据表 show tables; #查看数据 select * from binlogtest;
生成新的binlog文件
flush logs;
删除binlog数据库
- 恢复数据
mysqlbinlog --no-defaults E:\phpstudy_pro\Extensions\MySQL5.7.26\data\mysql-bin.000001 | mysql -uroot -p
本作品采用《CC 协议》,转载必须注明作者和本文链接