文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

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

2023-08-17 06:40

关注
show variables like '%log_bin%';

在这里插入图片描述
看到了是没有开启的。

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

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

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

在这里插入图片描述
配置好之后,要进行重启mysql服务,没有重启之前该路径目录长这样子
在这里插入图片描述
重启服务
在任务管理器中找到mysql右键点击重新启动。
在这里插入图片描述
重启服务之后该文件的目录长这样子,新添加了如图所示的文件。
在这里插入图片描述
此时在命令行中再去查看是否开启了binlog,
在这里插入图片描述

查看有哪些binlog文件

show binary logs;或者show master logs;

在这里插入图片描述
查看当前正在使用的是哪一个binlog文件

show master status;

在这里插入图片描述

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

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

在这里插入图片描述

create database binlogtest;

在这里插入图片描述
创建数据库后,再查看binlog日志文件,就看到刚刚执行的创建数据库的命令事件。

在这里插入图片描述
在刚才创建的数据库下面新建一张测试表并插入数据。

mysql> use binlogtest;Database changedmysql>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';

已经将创建数据库、创建表、新增数据库日志都添加进去了。
在这里插入图片描述

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

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

在这里插入图片描述

转成文件
在这里插入图片描述
在这里插入图片描述在控制台不好看,用记事本打开方便查看
在这里插入图片描述

在这里插入图片描述
现在做了一个伟大的壮举,,,删库了
在这里插入图片描述
已经删库了,现在要进行数据的恢复
查看有哪些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

在这里插入图片描述

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

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

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

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

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

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

来源地址:https://blog.csdn.net/weixin_44137201/article/details/130901262

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-数据库
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯