Mysql 通过binlog日志恢复数据

Linux之 宝塔面板 通过binlog日志恢复被删除表的数据 这几个步骤走完即可,将frm ibd文件恢复到数据库 中间,需要 删除表空间,将ibd文件上传到服务器 之后执行sql文件,即可恢复数据表数据。这个命令是用来将MySQL的二进制日志文件(mysql-bin.000021)转换成SQL格式的文件(000021.sql)。宝塔面板mysql表误操作导致原数据表被删恢复过程(附php代码正则插入id)mysql把一个表的frm,ibd传到宝塔面板上,为什么这个表还不显示。MySQL 5.7.18 通过数据库idb文件导入至另一数据库。会得到对应sql文件。 阅读详情

Binlog日志,即binary log,是二进制日志文件,有两个作用,一个是增量备份,另一个是主从复制,即主节点维护一个binlog日志文件,从节点从binlog中同步数据,也可以通过binlog日志来恢复数据

1,登录mysql查看binlog日志的状态,输入show variables like ‘%log_bin%’;查看binlog为off关闭状态

2,开启mysql binlog日志,进入mysql配置文件(vi /etc/my.cnf)  在mysqld区域内添加如下内容,①server-id = 1(单个节点id) ②log-bin= /var/lib/mysql/mysql-bin(位置一般和mysql库文件所在位置一样) ③expire_logs_days = 10(表示此日志保存时间为10天),重启mysqld,再次查看binlog日志开启状态为ON

3,Binlog日志包括两类文件;第一个是二进制索引文件(后缀名为.index),第二个为日志文件(后缀名为.00000*),记录数据库所有的DDL和DML(除了查询语句select)语句事件

4,查看所有binlog日志文件列表:show master logs;

5,查看最后一个binlog日志的编号名称及其最后一个操作事件pos结束点的值:show master status; 

6,Flush logs  刷新日志,此刻开始产生一个新编号的binlog文件,例如:

每当mysqld服务重启时,会自动执行刷新binlog日志命令,mysqldump备份数据时加-F选项也会刷新binlog日志

7,清空所有binlog日志命令:reset master;

8,查看binlog文件内容,使用查看工具mysqlbinlog来查看(cat/vi/more都是无法打开的) 

9,上面的方法读取内容较多不易观察,以下命令更为方便查看命令:show binlog events in ‘mysql-bin.000003’; 

10,指定查询,从pos点406开始查询,如下:

11,指定查询,从pos点154开始查询,中间跳过2行,查询4条数据,如图:

12,利用binlog日志恢复mysql数据,例如,现有一张数据表如图:此表位于hello数据库

现在将此数据库备份到本地(模拟每周的备份情况),备份命令如下

可以在数据备份之前或者之后执行flush logs重新生成一个binlog日志用来记录备份之后的所有增删改操作(重新生成日志更好找pos点),由于业务需求,现在对表进行插入

数据,修改数据,如图新增了两条数据id 为5和6,修改后数据如图,

6的年龄修改成了30

13,由于操作失误,误删除了数据库,所有数据都不见了,此时可以通过binlog日志恢复数据,由于之前有做了数据库备份,所以可以先将备份的数据导入进去,剩下缺少的就是备份之后操作所产生的内容(备份之后执行了插入内容以及更改内容),先恢复备份的数据:创建库hello并选择库(use hello),通过命令source /root/hello.sql将数据库内容导入,然后执行

14,恢复的内容如下所示:

15,上面恢复的数据只是截止到备份时间的数据,剩下缺少的数据可以通过binlog日志来恢复,由于我们备份数据库之前重新创建了mysql-bin.000006日志,所以备份后的所有操作都保存在这个日志中,可以先备份下这个日志文件,cp mysql-bin.000006 /root/    接着执行flush logs 刷新日志,重新创建了一个binlog日志7

16,重新创建一个日志7的目的:接下来所有操作的数据都会写入到日志7中,日志6中不会在写入任何数据(方便根据日志6的内容恢复数据,因为日志6的数据就是备份之后到删库之前的所有操作日志,重建日志7不会有过多的数据影响恢复)

17,登录mysql 查看日志6:  show binlog events in ‘mysql-bin.000006’;结果如下:

查看日志发现,在备份数据后首先执行的是插入数据操作(在一个事务内),此时可以通过指定pos结束点恢复(部分恢复),如图,pos结束点位435(事务已提交表示结束),执行命令如下, /usr/bin/mysqlbinlog  --stop-position=435 --database=hello  /var/lib/mysql/mysql-bin.000006 | /usr/bin/mysql -uroot -p密码 -v hello (其中整个命令的含义是通过mysqlbinlog读取日志内容并通过管道传给mysql命令,-v表示执行此mysql命令)执行后查询表发现如下:

备份之后插入的数据都出现了,目前还差一次修改的数据没有找回来,接着看日志6如图,

发现执行更新操作的事务区间为573到718,所以可以执行以下命令来恢复这段数据,/usr/bin/mysqlbinlog  --start-position=573 --stop-position=718 --database=hello  /var/lib/mysql/mysql-bin.000006 | /usr/bin/mysql -uroot -p密码 -v hello注意其中的符号都是英文状态下(只恢复这段事务区间的数据也就是更新的数据),恢复结果如下:

更改的数据回来了,也可以最开始的时候直接通过最终的pos结束点718来恢复

18,还有一种通过时间来恢复,还是先备份当前数据库(备份之前先flush logs创建一个新的binlog日志文件9),然后修改数据插入数据后如图,

修改后将当前数据库删除,(删除库之后再执行一下flush logs创建一个新的日志文件,这样新的操作都写入到这个文件中,上个日志文件只用来恢复数据,不会有其余数据混入)现在我们通过时间点来恢复从备份数据后到删除数据库这期间所有操作的数据,首先通过mysqlbinlog来了查看日志文件9如图所示,

19,执行命令:/usr/bin/mysqlbinlog --start-datetime="2018-04-27 20:57:55" --stop-datetime="2018-04-27 20:58:18" --database=hello /var/lib/mysql/mysql-bin.000009 | /usr/bin/mysql -uroot -p8856769abcd -v hello  更改的数据得到了恢复

20,插入数据的日志时间如图:

执行命令/usr/bin/mysqlbinlog --start-datetime="2018-04-27 20:58:18" --stop-datetime="2018-04-27 20:58:35" --database=hello /var/lib/mysql/mysql-bin.000009 | /usr/bin/mysql -uroot -p8856769abcd -v hello  插入的数据得到了恢复,如图,

windows下mysql开启binlog日志及利用binlog日志恢复数据笔记 1、开启binlog日志。 找到mysql安装目录,打开配置文件my.ini 在[mysqld]下添加: bin-log=mysql-bin 保存后重启mysql。此时在data目录会生成mysql-bin.000001和mysql-bin.index。 注意:MySQL每次重启服务会重新生成一个binlog二进制文件。 2、实验: 1、创建一个t1测试数据库。 create ... 阅读详情

相关推荐

Mysql之binlog日志说明及利用binlog日志恢复数据操作记录

众所周知,binlog日志对于mysql数据库来说是十分重要的。在数据丢失的紧急情况下,我们往往会想到用binlog日志功能进行数据恢复(定时全备份+binlog日志恢复增量数据部分),化险为夷! 废话不多说,下面是梳理的binlog日志操作解说: 一、初步了解binlog MySQL的二进制日志binlog可以说是MySQL最重要的日志,它记录了所有的DDL和DML语句(除了数据查询语句s...

rorntuck7的专栏 671

宝塔误删数据库有binlog的恢复过程

1.查看是否有binlog 有,则恢复 1.先把binlog变成sql /www/server/mysql/bin/mysqlbinlog /www/server/data/mysql-bin.000005 > /www/1.sql 2.打开sql文件分析end_log_pos 3.恢复 sudo /www/server/mysql/bin/mysqlbinlog --no-defaults /www/server/data/mysql-bin.000005 --start-po

野草哥哥的博客 1479

如何让 RTX 5090 开启 PCIE P2P 以加速多卡通信

RTX 5090 基于新的 Blackwell 架构。NVIDIA 出于对某些主板兼容性(如 IOMMU、Resizable BAR 策略)的保守考虑,**屏蔽了 5090 的 BAR1 P2P 功能**。 我们需要通过 Patch 驱动源码,强制开启这一隐藏功能。 开启 P2P 后,PyTorch 的集合通信算子(Multi-GPU 训练的核心)延迟显著降低,**All-Reduce 甚至降低了 60% 以上**。

Hi20240217的博客 1722

MySQL 8.0.12 mysqlbinlog命令参数详解

1.版本号不同: # /usr/local/mysql57/bin/mysqlbinlog --version /usr/local/mysql57/bin/mysqlbinlog Ver 3.4 for linux-glibc2.12 at x86_64 # /usr/local/mysql80/bin/mysqlbinlog --version /usr/local/mysql80/bi...

vkingnew 的技术博客 6795

基于业务目标的Agent自动化评测体系设计:超越准确率的有效性衡量

我们还是以电商全链路服务Agent我们还是以电商全链路服务Agent。

AI架构全栈开发实战笔记 318

dify安装ollama插件及OLLAMA模型添加失败问题完整解决方法

plugin_daemon-1 | 2025/05/10 17:37:36 stdio.go:160: [INFO]plugin langgenius/ollama:0.0.6: Installed model: ollama 提示ollama安装成功,再添加模型就不会有问题了。安装dify1.2.0和1.3.1均出现OLLAMA插件安装失败或插件安装后添加模型失败的问题,具体表现为一是添加ollama插件时没反应,需要二次添加才成功;二是添加模型时点保存报500错误或点保存后没反应,无法成功添加。

symstandsun的博客 9078

宝塔误删mysql数据如何恢复?(救命题)

mysql二进制日志恢复 有一个朋友,在工作中,复制网上的代码,错误的把"delete from table"当成了 "select from table",结果删除了大量数据表内容。 那么如何避免被项目经理杀了祭天呢? 宝塔面板的mysql自动开启了binlog功能~ 也就是说我们可以直接通过binlog方式恢复宝塔误删的数据。 1、检查mysqlbinlog日志功能,图中返回 NO代表开启,OFF代表未开启 mysql> show variables like 'log

qq_39702981的博客 5707

车载以太网测试-3【Wireshark介绍】

数据包捕获支持从多种网络接口(如以太网、Wi-Fi、蓝牙等)捕获数据包。可以实时捕获或从文件中读取已捕获的数据包。协议解析支持解析数百种网络协议(如 TCP/IP、HTTP、DNS、FTP 等)。能够深入解析协议头部和负载,帮助用户理解网络通信的细节。过滤功能提供强大的显示过滤器和捕获过滤器,帮助用户快速定位和分析感兴趣的数据包。支持基于协议、IP地址、端口号等多种条件的过滤。统计和分析提供多种统计工具,如流量图、会话统计、协议分层统计等。

车载网络测试工程师的博客 1989

mysql binlog 日志详解及恢复

在下面你将看到 mysqlbinlog --stop-datetime="2019-04-20 9:59:59″ /u01/mysql3308/binlog/mysql-bin.000001 | mysql -u root -pmypwd 类似的语句,这是把mysql-bin.000001这个二进制文件里的内容转换成ASCII文件(也就是sql语句),直接通过管道操作符”|”传输给 mysql这个程序,然后过滤掉其它数据库的语句,只在db_test里执行。在该行中,从上午10:01登录的SQL语句将运行。

zll4859291的博客 6307

PCL 读取和保存点云

PCL (Point Cloud Library) 是一个用于处理 3D 点云数据的开源库。在处理点云数据时,常见的任务包括点云的读写和可视化。PCL 提供了强大的 IO 模块来读取和写入各种格式的点云文件,并且提供了可视化模块来对点云进行渲染和显示。点云的读写与显示是很多 3D 数据处理任务的基础步骤,通过这些步骤,可以对点云进行预处理、分析和操作。

纵马踏花向自由 1737

W5500以太网&PoE扩展模块原理图设计,已量产

本文将以 W5500 以太网 & PoE 扩展板为对象,从嵌入式硬件设计的视角,深度拆解其电路架构、核心器件选型、关键功能实现,以及这款板子解决行业痛点的设计思路。

不脱发的程序猿 939

MySQL—使用binlog日志恢复数据

在 MySQL 中,使用二进制日志(binlog)恢复数据是一种常见的用于故障恢复或数据找回的方法。my.cnfmy.inilog-binValueONxxxxxx例如,可以解析这个日志文件。常用的选项包括和来指定时间范围,和来指定日志位置范围。例如,只恢复某个时间段内的操作,可以使用。5.:将解析后的 SQL 语句应用到目标数据库中,可以将解析结果通过管道直接输入到mysql客户端来执行。假设用户名是root,密码是123456,要恢复这个日志文件中的数据,可以执行。

dghfttgv的博客 8735

详解舵机的基本原理以及控制方法

文章目录什么是舵机?伺服控制硬件连接舵机规格SG90MG90SMG996R总结 什么是舵机? 舵机是伺服电机的一种,伺服电机就是带有反馈环节的电机,我们可以通过伺服电机进行精确的位置控制或者输出较高的扭矩; 舵机也叫也叫 RC 伺服器,通常用于机器人项目,也可以在遥控汽车,飞机等航模中找到它们。 类似舵机这样的伺服系统通常由小型电动机,电位计,嵌入式控制系统和变速箱组成。 电机输出轴的位置由内部电位计不断采样测量,并与微控制器(例如STM32,Arduino)设置的目标位置进行比较; 根据相应的偏差,控制

一名热爱技术的工程师的博客。分享技术干货,记录美好生活。永远相信美好的事情即将发生。 4万+

Mysql利用binlog日志恢复数据

查看binlog日志核心配置项输入以下命令查询binlog相关配置信息(1)log_bin字段含义:全局控制 MySQL 是否开启二进制日志的总开关。取值为ON时,MySQL 会记录所有对数据的修改操作(如 INSERT/UPDATE/DELETE、表结构变更等)到 binlog 文件,用于 数据恢复(通过 binlog 回滚或重做操作)和 主从复制(主库通过 binlog 向从库同步数据)。取值为OFF时,完全关闭 binlog,不记录任何修改操作(生产环境建议开启,除非是纯只读库)。

gaole的博客 1617

1、JMP脚本编程全面指南:从基础到高级应用

本博客全面介绍了JMP脚本编程的各个方面,从JMP基础和JSL入门,到数据类型、数据结构、编程方法、数据表操作、图形与三维场景脚本,再到应用程序创建与扩展功能。内容涵盖脚本工具使用、常见任务实现、兼容性说明及未来发展趋势,旨在帮助用户掌握JMP脚本语言的强大功能,提升数据分析的自动化与定制化能力。适合从初学者到高级用户的深入学习与实践参考。

flink9streamer的博客 266

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

通过binlog日志恢复数据Mysql

1,登录mysql查看binlog日志的状态,输入show variables like ‘%log_bin%’;查看binlog为off关闭状态 2,开启mysql binlog日志,进入mysql配置文件(vi /etc/my.cnf) 在mysqld区域内添加如下内容 ①server-id = 1(单个节点id) ②log-bin= /var/lib/mysql/mysql-bin(位置一般和mysql库文件所在位置一样) ③expire_logs_days = 10(表示此日志保存时间为10天)

1486

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

Mysql使用binlog日志恢复数据

Mysql的binlog日志,以事件的形式记录了Mysql执行的除去 数据查询语句之外所有的DDL和DML语句,可以通过mysqlbinlog工具进行查看。模式特点优点缺点STATEMENT模式(默认)基于SQL语句的复制(statement-based replication, SBR),仅记录每一条会修改数据的sql语句binlog日志相对较小,减少了磁盘IO,提高了性能。

漠效的博客 1927

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

【MySQL】Mysql 通过binlog日志恢复数据

日志6中不会在写入任何数据(方便根据日志6的内容恢复数据,因为日志6的数据就是备份之后到删库之前的所有操作日志,重建日志7不会有过多的数据影响恢复))现在我们通过时间点来恢复从备份数据后到删除数据库这期间所有操作的数据,首先通过mysqlbinlog来了查看日志文件9如图所示,,即主节点维护一个binlog日志文件,从节点从binlog中同步数据,也可以通过binlog日志来恢复数据。数据,修改数据,如图新增了两条数据id 为5和6,修改后数据如图,

qq_43331089的博客 972

Mysql之通过Binlog日志实现数据恢复

目录一、binlog日志二、数据恢复: 一、binlog日志 1.binlog日志介绍 1)binlog也叫归档日志,它属于mysql的server层,所以所有储引擎都可以使用该日志。 2)binlog是逻辑日志,记录的是这个语句的原始逻辑,比如“给ID=2这一行的c字段加1 ”。 3)binlog是可以追加写入的。“追加写”是指binlog文件写到一定大小后会切换到下一个,并不会覆盖以前的...

Husky 467

MySQL 通过binlog日志恢复数据

MySQL 通过binlog日志恢复数据 ​ Binlog日志,即binary log,是二进制日志文件,有两个作用,一个是增量备份,另一个是主从复制,即主节点维护一个binlog日志文件,从节点从binlog中同步数据,也可以通过binlog日志来恢复数据。 一、查看 登录mysql查看binlog日志的状态 # 查看binlog,为off关闭状态 show variables like '%log_bin%'; binlog日志配置 # 开启二进制日志 log_bin = /mydat

banyejiu的博客 2336

MYSQL使用binlog日志恢复数据

注意事项:本教程目的在于,你的MYSQL采用了binlog日志,且产生了binlog日志文件,使用日志文件恢复数据。

好吃的油炸代码 5209

Mysql 通过 binlog日志 恢复数据(数据搞丢看过来)

选中区间 只是重新执行了一次 --start-position=17639 到 --stop-position=18038 期间记录的操作(见案例7.6偏差) 文章仅供参考,问题也比较多,还有几个情况没考虑。 比如 日志不单单是这个表的日志,还夹杂着其他表,日志内按照执行时间顺序记录,如果区间中包含其他表操作,那么其他表也会被重新执行,会造成脏数据。

Jokers_lin的博客 1万+

MYSQL专题-使用Binlog日志恢复MySQL数据

大家有没有碰到过由于误操作把测试数据库的一张表给删除了,导致测试的数据都被删除了,然后手足无措,测试把你一定数落,顿时感觉自己要死了?今天就教你即使误删了也可以将删除的数据恢复,以后误删再也不用惊吓了。当然,实际操作中最好还是认真对待,小心操作。还有就是在大公司内,数据也不是你想删就能删掉的,有无数权限/备份阻拦着你,所以通常情况下你都不会有机会,但还是备着以防万一。 Binlog简述 MySql数据恢复主要依赖的是Binlog日志,在之前的文章中也有讲过,大家有兴趣可以去看看,这里简单介绍一下: bin

weixin_43525722的博客 536

mysql中利用binlog日志恢复数据

(1)开启二进制日志,my.ini/my.cnf参数配置(2)重启mysql,然后登陆,查看log_bin是否开启(on:开启,off:关闭)备注:首先我们来认识几个与bln-log相关的mysql命令flush logs 会多一个最新的bin-log日志show master status 查看最后一个bin-log日志相关信息reset master 清空所有的bin-log日志(3)log-...

songrenqing 4188

mysql使用binlog日志恢复mysql数据

并非完全原创,但是自我感觉将其中许多的易错点,坑都着重强调了一下。 --------------------------------------------------------- --------------------------------------------------------- 知识补充 --------------------------------------------------------- ------------------------------------

smallfishy的博客 515
上一篇: list转数组问题:list.toArray()与list.toArrays(T[])
下一篇: SpringBoot整合Swagger,访问Swagger-ui.html导致404问题
AARM
博客等级 码龄10年 10粉丝 116原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值