MySQL通过binlog日志恢复数据
一、查看下自己的MySQL是否开启了binlog日志
# 是否启用binlog日志 OFF:关闭 ON:开启
show variables like 'log_bin';
二、开启binlog日志
在linxu服务器中找到my.cnf :
mysql --help | grep 'Default options' -A 1
执行结果
Default options are read from the following files in the given order:
/etc/my.cnf /etc/mysql/my.cnf /usr/etc/my.cnf ~/.my.cnf
可以看到mysql优先加载/etc/my.cnf中的配置。
所以需要在/etc/my.cnf中mysqld节添加开启binlog的配置,如下有两种方式:
#第一种方式:
#开启binlog日志
log_bin=ON
#binlog日志的基本文件名
log_bin_basename=/var/lib/mysql/mysql-bin
#binlog文件的索引文件,管理所有binlog文件
log_bin_index=/var/lib/mysql/mysql-bin.index
#配置serverid
server-id=1 #第二种方式:
#此一行等同于上面log_bin三行
log-bin=/var/lib/mysql/mysql-bin
#配置serverid
server-id=1
修改完配置后,重启mysql。
systemctl stop mysqld.service
systemctl start mysqld.service
systemctl status mysqld.service
在navicat中或者在服务器中进入mysql 执行SHOW VARIABLES LIKE 'log_bin'; Value 值为 ON即可。
SHOW VARIABLES LIKE 'log_bin'
PS:mysql启动停止命令
一、 启动
1、使用 service 启动:service mysql start
2、使用 mysqld 脚本启动:/etc/inint.d/mysql start
3、使用 safe_mysqld 启动:safe_mysql& 二、停止
1、使用 service 启动:service mysql stop
2、使用 mysqld 脚本启动:/etc/inint.d/mysql stop
3、mysqladmin shutdown 三、重启
1、使用 service 启动:service mysql restart
2、使用 mysqld 脚本启动:/etc/inint.d/mysql restart
二、使用binlog日志恢复数据
首先在21:21分 我的fo_service库的admin表中有这么几条数据

随后我向admin表插入了三条数据


但是呢 我在21:24分误删除了这三条数据, 我想恢复怎么办呢


(有的小伙伴会说直接把上面的insert语句拿下来不就完了吗,歪,那我们还用binlog干嘛)
恢复过程:
1、查看当前服务器的MySQL使用的binlog文件及大小(这个是会有多个的,我这里演示所以只有一个)
show binary logs;

2、查看binlog的目录
show global variables like '%log_bin%';

3、导出sql文件
执行完下面这个命令,输出的sql文件在当前你所在的目录位置。
(注意自己的mysql-bin.000001文件所在目录,你的也可能是mysql-bin.000005哦,复制的时候注意改开始和结束时间,改路径 /var/lib/mysql/mysql-bin.000001)
两种都可以
mysqlbinlog --no-defaults --database=fo_service --start-datetime="2022-04-25 21:21:00" --stop-datetime="2022-04-25 21:23:00" -v /var/lib/mysql/mysql-bin.000001 > nobase64.sql mysqlbinlog --no-defaults --database=fo_service --start-datetime="2022-04-25 21:21:00" --stop-datetime="2022-04-25 21:23:00" -v --base64-output=decode-rows /var/lib/mysql/mysql-bin.000001 > base64.sql
4、执行命令,还原数据
输出文件之后 将文件下载到本地 (我放在D盘的根目录下)
将服务器上的库复制到本地一份
使用黑窗口(cmd)的root账号登录mysql后
执行source命令

查看本地的admin表的数据,可以看见删除的数据恢复了(包括数据的主键ID都是恢复的,大可放心)。
最后将本地的数据迁移到服务器上的数据库中即可。
文章参考 https://blog.csdn.net/jolly10/article/details/80077366
MySQL通过binlog日志恢复数据的更多相关文章
- Mysql利用binlog日志恢复数据操作(转)
a.开启binlog日志:1)编辑打开mysql配置文件/etc/mys.cnf[root@vm-002 ~]# vim /etc/my.cnf在[mysqld] 区块添加 log-bin=mysql ...
- 解说mysql之binlog日志以及利用binlog日志恢复数据
众所周知,binlog日志对于mysql数据库来说是十分重要的.在数据丢失的紧急情况下,我们往往会想到用binlog日志功能进行数据恢复(定时全备份+binlog日志恢复增量数据部分),化险为夷! 废 ...
- Mysql之binlog日志说明及利用binlog日志恢复数据操作记录
众所周知,binlog日志对于mysql数据库来说是十分重要的.在数据丢失的紧急情况下,我们往往会想到用binlog日志功能进行数据恢复(定时全备份+binlog日志恢复增量数据部分),化险为夷! 一 ...
- 【转】Mysql之binlog日志说明及利用binlog日志恢复数据操作记录
众所周知,binlog日志对于mysql数据库来说是十分重要的.在数据丢失的紧急情况下,我们往往会想到用binlog日志功能进行数据恢复(定时全备份+binlog日志恢复增量数据部分),化险为夷! 废 ...
- MySQL二进制binlog日志说明以及利用binlog日志恢复数据
MySQL的binlog日志对于mysql数据库来说是十分重要的.在数据丢失的紧急情况下,我们往往会想到用binlog日志功能进行数据恢复(定时全量备份+binlog日志恢复增量数据部分). 一.关于 ...
- MySQL的binlog日志恢复(转)
binlog 基本认识 MySQL的二进制日志可以说是MySQL最重要的日志了,它记录了所有的DDL和DML(除了数据查询语句)语句,以事件形式记录,还包含语句所执行的消耗的时间,MySQL的二进制日 ...
- mysql使用二进制日志恢复数据
一.恢复到某个二进制文件 1.开启二进制日志 在mysqld的配置节点下添加如下配置 log-bin="E:/Mysql57BinLog/binlog"(windows下的路径,l ...
- mysql根据二进制日志恢复数据/公司事故实战经验
根据二进制日志恢复 目的:恢复数据,根据二进制日志将数据恢复到今天任意时刻 增量恢复,回滚恢复 如果有备份好的数据,将备份好的数据导入新数据库时,会随着产生二进制日志 先准备一台初始化的数据库 mys ...
- 如何通过Mysql的二进制日志恢复数据库数据
经常有网站管理员因为各种原因和操作,导致网站数据误删,而且又没有做网站备份,结果不知所措,甚至给网站运营和盈利带来负面影响.所以本文我们将和大家一起分享学习下如何通过Mysql的二机制日志(binlo ...
随机推荐
- Python paho-mqtt使用心得
一.概述 一)基本概念 使用回调处理从MQTT代理返回的数据,要使用回调需要先定义回调函数然后将其指派给客户端实例(client). 例如: # 定义一个回调函数 def on_connect(cli ...
- 国产芯片DP9637-K总线收发器替代L9637D芯片和SI9241
DP9637可以替代L9637D,低成本解决方案,只需要做简单硬件修改,感兴趣可以留言或者联系小编了解详细资料. 主要特性 电压工作范围 6V≤VBAT≤36V 具有超低休眠电流 ...
- SpringBoot详解
1.Hello,World! 1.1.SpringBoot简介 回顾什么是Spring Spring是一个开源框架,2003 年兴起的一个轻量级的Java 开发框架,作者:Rod Johnson . ...
- Linux 多网卡bonding
bonding 将多块网卡绑定同一IP地址对外提供服务,可以实现高可用或者负载均衡.直接给两块网卡设置同一IP 地址是不可以的.通过 bonding,虚拟一块网卡对外提供连接,物理网卡的被修改为相同的 ...
- 3DUNet的Pytorch实现
编辑日期: 2021-04-24 16:57:48 本文主要介绍3DUNet网络,及其在LiTS2017肝脏肿瘤数据集上训练的Pytorch实现代码. GitHub地址: https://github ...
- 痞子衡嵌入式:浅谈i.MXRT1xxx系列MCU时钟相关功能引脚的作用
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是i.MXRT1xxx系列MCU时钟相关功能引脚作用. 如果我们从一颗 MCU 芯片的引脚分类来看芯片功能,大概可以分为三大类:电源.时钟 ...
- Python3获取5000个元素的单字符表
技术背景 此前考虑过一个问题,有没有办法获取到python里面所有定义好的单字符的表,比如我们获取5000个不一样的单字符,但是常用的chr(number)的方法里面包含了太多的非字母条目,比如缩进换 ...
- 自增特性,外键,级联更新与级联删除,表间关系,SELECT用法,GROUP BY
自增特性 自动增长的作用: 问题:为数据表设置主键约束后,每次插入记录时,如果插入的值已经存在,会插入失败. 如何解决:为主键生成自动增长的值. 自动增长的语法: 字段名 数据类型 AUTO_INCR ...
- 虚拟机中CentOS-7.9的硬盘空间扩容(EXSI)
目录 一.增加虚机容量 二.创建新的分区 三.格式化新分区 四.lvm实现卷扩容 五.文件系统的扩容 大家好,我是LSF,发现一台虚机上 /dev/mapper/centos-root Use%已经快 ...
- python入门基础知识二(字符串的常用操作方法)
下标/索引: a = "I'm interested in Python." print(a[4]) i # 英文的字符串每一个下标/索引对应一个字母(含标点) a = '我喜欢p ...