windows下mysql中binlog日志分析和数据恢复问题

 更新时间:2023年06月06日 15:12:26   作者:子沫2020  
这篇文章主要介绍了windows下mysql中binlog日志分析和数据恢复问题,本文通过示例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

1.首先查看是否开启了binlog

show variables like '%log_bin%';

看到了是没有开启的。

2.开启binlog日志,并重启mysql服务

不能通过命令的方式去打开,因为会提示说这个参数是只读的。如下图:

所以,打开mysql的配置文件,找到mysql的配置文件(和Linux下的文件名是不一样的,Linux是my.cnf),windows默认的在C:\ProgramData\MySQL\MySQL Server 5.7\my.ini

在[mysqld]节点下添加
log-bin= mysqlbinlog
binlog-format=ROW

配置好之后,要进行重启mysql服务,没有重启之前该路径目录长这样子

重启服务
在任务管理器中找到mysql右键点击重新启动。

重启服务之后该文件的目录长这样子,新添加了如图所示的文件。

此时在命令行中再去查看是否开启了binlog,

3.查看有哪些binlog文件和正在使用的binlog文件

查看有哪些binlog文件

show binary logs;
或者
show master logs;

查看当前正在使用的是哪一个binlog文件

show master status;

4.binlog中的事件(show binlog events)数据恢复就会使用到该命令

我们执行命令都是以事件的形式操作的

 查看所有的事件
 show binlog events;
 当binlog文件比较多的时候可以加条件来查看具体的某一个文件中的所有事件
 show binlog events in 'mysqlbinlog.000001';

5.创建一个数据库和一张表并插入数据之后再次查看binlog中的事件(show binlog events)

create database binlogtest;

创建数据库后,再查看binlog日志文件,就看到刚刚执行的创建数据库的命令事件。

在刚才创建的数据库下面新建一张测试表并插入数据。

mysql> use binlogtest;
Database changed
mysql>
CREATE TABLE test (
  id int NOT NULL AUTO_INCREMENT,
  name varchar(10) DEFAULT NULL,
  age int DEFAULT 0,
  PRIMARY KEY (id)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
mysql> insert into test values(1,'zhangsan',20);
Query OK, 1 row affected (0.01 sec)
mysql> insert into test values(2,'lisi',30);
Query OK, 1 row affected (0.00 sec)
mysql> insert into test values(3,'wangwu',40);
Query OK, 1 row affected (0.00 sec)
show binlog events in 'mysqlbinlog.000001';

已经将创建数据库、创建表、新增数据库日志都添加进去了。

6.查看binlog文件中的内容(mysqlbinlog)

由于binlog是二进制的文件,是不能直接查看的,可以使用mysqlbinlog命令就可以转换成人能够看懂的内容,进入到C:\ProgramData\MySQL\MySQL Server 5.7\Data下面打开cmd
结尾没有分号

mysqlbinlog "mysqlbinlog.000001"
或者将binlog文件换成人能够看懂的文件
mysqlbinlog "mysqlbinlog.000001">"test.sql"

转成文件

在控制台不好看,用记事本打开方便查看

7.数据恢复

现在做了一个伟大的壮举,,,删库了

已经删库了,现在要进行数据的恢复
查看有哪些binlog文件(这个binlog文件是重启一次mysql服务就会形成一个新的文件mysqlbinlog.000002 …后缀依次累加)

show binary logs;

查看删库之前执行过的操作事件,并找到要恢复数据的起点和终点(这里在控制到中看起来比较费劲,可以借助别的软件如:navicat)

show binlog events;
或者
show binlog events in 'mysqlbinlog.000001';

那就以创建数据库为起点,以删库之前为终点
为了方便查看我将上图show binlog events;
结果复制到excel中

binlog命令恢复数据

mysqlbinlog --start-position=154 --stop-position=1503 mysqlbinlog.000001 | mysql -uroot -proot 

提示信息不需要理会,要是有强迫症,那你就先

mysqlbinlog --start-position=154 --stop-position=1503 mysqlbinlog.000001 | mysql -uroot -p
回车
再次单独输入密码
root

8.总结

简单来说,要恢复数据
1.查看当前使用的binlog文件是那个

show binary logs; --文件列表
show master status; --当前使用的是哪个文件

2.针对当前使用的文件查看事件,以此来确认要恢复数据的终点和起点

show binlog events;
或者
show binlog events in 'mysqlbinlog.000001';

3.携带起点和终点,执行数据恢复命令

mysqlbinlog --start-position=154 --stop-position=1503 mysqlbinlog.000001 | mysql -uroot -proot 

到此这篇关于windows下mysql中binlog日志分析和数据恢复的文章就介绍到这了,更多相关mysql binlog日志分析和数据恢复内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • VSCODE连接MySQL数据库服务图文教程

    VSCODE连接MySQL数据库服务图文教程

    最近做网页碰到连接数据库的问题,上网查了挺久终于搞明白了,下面这篇文章主要给大家介绍了关于VSCODE连接MySQL数据库服务的相关资料,文中通过图文介绍的非常详细,需要的朋友可以参考下
    2023-06-06
  • mysql 5.7.21 winx64安装配置方法图文教程

    mysql 5.7.21 winx64安装配置方法图文教程

    这篇文章主要为大家详细介绍了mysql 5.7.21 winx64安装配置方法图文教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-02-02
  • Mysql 服务 1067 错误 的解决方法:修改mysql可执行文件路径

    Mysql 服务 1067 错误 的解决方法:修改mysql可执行文件路径

    这篇文章主要介绍了Mysql 服务 1067 错误 的解决方法:修改mysql可执行文件路径的相关资料,需要的朋友可以参考下
    2017-05-05
  • MySQL数据库分区概念及使用

    MySQL数据库分区概念及使用

    本文主要介绍了数据库分区的基本概念,分区类型以及如何在MySQL中实现分区,可以提高查询性能和管理效率,实现分区需要根据具体的业务需求选择合适的分区类型,感兴趣的可以了解一下
    2024-10-10
  • Mysql 的存储引擎,myisam和innodb的区别

    Mysql 的存储引擎,myisam和innodb的区别

    这篇文章主要介绍了Mysql 的存储引擎,myisam和innodb的区别,需要的朋友可以参考下
    2014-12-12
  • 超详细MySQL8.0.22安装及配置教程

    超详细MySQL8.0.22安装及配置教程

    这篇文章主要介绍了超详细MySQL8.0.22安装及配置教程,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-12-12
  • DBeaver连接MySQL提示"Public Key Retrieval is not allowed"问题解决方式

    DBeaver连接MySQL提示"Public Key Retrieval is

    dbeaver数据库连接工具,可以支持几乎所有的主流数据库.mysql,oracle.sqlserver,db2 等等,这篇文章主要给大家介绍了关于DBeaver连接MySQL提示"Public Key Retrieval is not allowed"问题的解决方式,需要的朋友可以参考下
    2023-10-10
  • 在win10系统下安装Mysql 5.7.17图文教程

    在win10系统下安装Mysql 5.7.17图文教程

    因为想要在公司电脑上安装Mysql,于是到官网上下载了最新版本的Mysql-5.7.17,其实安装方法也很简单,下面小编把安装过程分享到脚本之家平台供大家参考
    2017-03-03
  • jQuery 绑定事件的方式总结

    jQuery 绑定事件的方式总结

    这篇文章主要介绍了jQuery 绑定事件的方式总结的相关资料,这里整理了几种方法,需要的朋友可以参考下
    2016-11-11
  • 一文深入解析Mysql的开窗函数(易懂版)

    一文深入解析Mysql的开窗函数(易懂版)

    在MySQL中窗口函数是一类非常强大的函数,它们允许你在不改变表数据的情况下,对数据进行复杂的分析和计算,这篇文章主要介绍了Mysql开窗函数的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2025-09-09

最新评论