mysql利用binlog恢复数据

MySQL
476
0
0
2022-10-14
标签   MySQL日志

简介

mysql的二进制日志binlog可以说是mysql最重要的日志,它记录了所有的DDL和DML语句(除了数据查询语句select、show等),以事件形式记录,还包含语句所执行的消耗时间,mysql的二进制日志是事务安全型的。binlog的主要母的是复制和恢复

使用场景

  • MySQL主从复制:MySQL Replication在Master端开启binlog,Master把它的二进制日志传递给slaves来达到master-slave数据一致的目的
  • 数据恢复:通过使用mysqlbinlog工具来恢复数据

实现

  1. 连接数据库
mysql -uroot -p123456

如何使用mysql binlog 恢复数据

  1. 查看binlog日志状态
binlog日志开启状态为ON

如何使用mysql binlog 恢复数据

  1. 开启binlog
  2. mysql配置文件增加这一行log-bin=mysql-bin重启mysql

如何使用mysql binlog 恢复数据

可以看到 log_bin 已经开启, 同时可以看到存储的位置在 E:/phpstudy_pro/Extensions/MySQL5.7.26/data/ 目录 , 前缀是 mysql-bin

  1. 查看binlog日志文件
show master logs;
  1. 如何使用mysql binlog 恢复数据
  2. 创建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;
  1. 插入数据
INSERT INTO `binlogtest` ( title ) VALUES ( 1 );
INSERT INTO `binlogtest` ( title ) VALUES ( 2 );
INSERT INTO `binlogtest` ( title ) VALUES ( 3 );
  1. 查看数据
#查看数据库
show databases;
#使用binlog数据库
use binlog;
#查看数据表
show tables;
#查看数据
select * from binlogtest;
  1. 如何使用mysql binlog 恢复数据
  2. 生成新的binlog文件
flush logs;
  1. 如何使用mysql binlog 恢复数据
  2. 如何使用mysql binlog 恢复数据
  3. 删除binlog数据库
  4. 恢复数据
mysqlbinlog --no-defaults E:\phpstudy_pro\Extensions\MySQL5.7.26\data\mysql-bin.000001 | mysql -uroot -p

如何使用mysql binlog 恢复数据