一、查看下自己的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日志恢复数据的更多相关文章

  1. Mysql利用binlog日志恢复数据操作(转)

    a.开启binlog日志:1)编辑打开mysql配置文件/etc/mys.cnf[root@vm-002 ~]# vim /etc/my.cnf在[mysqld] 区块添加 log-bin=mysql ...

  2. 解说mysql之binlog日志以及利用binlog日志恢复数据

    众所周知,binlog日志对于mysql数据库来说是十分重要的.在数据丢失的紧急情况下,我们往往会想到用binlog日志功能进行数据恢复(定时全备份+binlog日志恢复增量数据部分),化险为夷! 废 ...

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

    众所周知,binlog日志对于mysql数据库来说是十分重要的.在数据丢失的紧急情况下,我们往往会想到用binlog日志功能进行数据恢复(定时全备份+binlog日志恢复增量数据部分),化险为夷! 一 ...

  4. 【转】Mysql之binlog日志说明及利用binlog日志恢复数据操作记录

    众所周知,binlog日志对于mysql数据库来说是十分重要的.在数据丢失的紧急情况下,我们往往会想到用binlog日志功能进行数据恢复(定时全备份+binlog日志恢复增量数据部分),化险为夷! 废 ...

  5. MySQL二进制binlog日志说明以及利用binlog日志恢复数据

    MySQL的binlog日志对于mysql数据库来说是十分重要的.在数据丢失的紧急情况下,我们往往会想到用binlog日志功能进行数据恢复(定时全量备份+binlog日志恢复增量数据部分). 一.关于 ...

  6. MySQL的binlog日志恢复(转)

    binlog 基本认识 MySQL的二进制日志可以说是MySQL最重要的日志了,它记录了所有的DDL和DML(除了数据查询语句)语句,以事件形式记录,还包含语句所执行的消耗的时间,MySQL的二进制日 ...

  7. mysql使用二进制日志恢复数据

    一.恢复到某个二进制文件 1.开启二进制日志 在mysqld的配置节点下添加如下配置 log-bin="E:/Mysql57BinLog/binlog"(windows下的路径,l ...

  8. mysql根据二进制日志恢复数据/公司事故实战经验

    根据二进制日志恢复 目的:恢复数据,根据二进制日志将数据恢复到今天任意时刻 增量恢复,回滚恢复 如果有备份好的数据,将备份好的数据导入新数据库时,会随着产生二进制日志 先准备一台初始化的数据库 mys ...

  9. 如何通过Mysql的二进制日志恢复数据库数据

    经常有网站管理员因为各种原因和操作,导致网站数据误删,而且又没有做网站备份,结果不知所措,甚至给网站运营和盈利带来负面影响.所以本文我们将和大家一起分享学习下如何通过Mysql的二机制日志(binlo ...

随机推荐

  1. 『现学现忘』Git基础 — 5、Git的协作模式

    目录 1.分布式工作流程 2.集中式工作流 3.分支工作流 4.GitFlow 工作流(最流行) 5.Forking 工作流(偶尔使用) 6.总结 1.分布式工作流程 与传统的集中式版本控制系统(CV ...

  2. 【Hadoop】HBase组件配置

    目录 HBase实验步骤: 1.配置时间同步(所有节点) 2.部署HBase(master节点) 3.配置HBase(master节点) 4.拷贝文件到slave节点 5.修改权限,切换用户(所有节点 ...

  3. 伪元素 Before & Aster

    1. html 结构 <label class="is-required" for="name">姓名</label> <inpu ...

  4. 01. 树莓派初始配置——ssh连接使用root用户登录

    ssh连接使用root用户登录 普通的"pi"用户没有权限访问某些文件夹,或者对它们只有只读功能.部分操作需要在每条命令前都要加上"sudo",非常不方便.切换 ...

  5. Java 线程池四种拒绝策略

    jdk1.5版本新增了 JUC 并发包,其中一个包含线程池. 四种拒绝策略: 拒绝策略类型 说明 1 ThreadPoolExecutor.AbortPolicy 默认拒绝策略,拒绝任务并抛出任务 2 ...

  6. Elasticserach学习笔记(一)

    1.什么是Elasticserach? 一个由Java语言开发的全文搜索引擎,全文检索就是根据用户输入查询字符的片段,能查询出包含片段的数据,简单来说就是一个分布式的搜索与分析引擎,它可以完成分布式部 ...

  7. MySQL8新增降序索引

    MySQL8新增降序索引 桃花坞里桃花庵,桃花庵里桃花仙.桃花仙人种桃树,又摘桃花卖酒钱. 一.MySQL5.7 降序索引 MySQL在语法上很早就已经支持降序索引,但实际上创建的却仍然是升序索引,如 ...

  8. Django学习——ajax发送其他请求、上传文件(ajax和form两种方式)、ajax上传json格式、 Django内置序列化(了解)、分页器的使用

    1 ajax发送其他请求 1 写在form表单 submit和button会触发提交 <form action=""> </form> 注释 2 使用inp ...

  9. mysql二进制日志和mysql备份工具介绍以及日志恢复

    mysql备份: 三种备份方式 冷备:数据库停机,在进行备份 热备:lock table锁表,read   数据库只可以读不能写,在备份 温备:备份时数据库正常运行 备份类型:完整备份:全部备份,部分 ...

  10. 141. Linked List Cycle - LeetCode

    Question 141. Linked List Cycle Solution 题目大意:给一个链表,判断是否存在循环,最好不要使用额外空间 思路:定义一个假节点fakeNext,遍历这个链表,判断 ...