mysql利用binlog恢复数据

简介

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
    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;

    如何使用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;
  3. 插入数据

    INSERT INTO `binlogtest` ( title ) VALUES ( 1 );
    INSERT INTO `binlogtest` ( title ) VALUES ( 2 );
    INSERT INTO `binlogtest` ( title ) VALUES ( 3 );
  4. 查看数据

    #查看数据库
    show databases;
    #使用binlog数据库
    use binlog;
    #查看数据表
    show tables;
    #查看数据
    select * from binlogtest;

    如何使用mysql binlog 恢复数据

  5. 生成新的binlog文件

    flush logs;

    如何使用mysql binlog 恢复数据
    如何使用mysql binlog 恢复数据

  6. 删除binlog数据库

  1. 恢复数据
mysqlbinlog --no-defaults E:\phpstudy_pro\Extensions\MySQL5.7.26\data\mysql-bin.000001 | mysql -uroot -p

如何使用mysql binlog 恢复数据

本作品采用《CC 协议》,转载必须注明作者和本文链接
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!