iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >MySQL数据库通过Binlog恢复数据的详细步骤
  • 207
分享到

MySQL数据库通过Binlog恢复数据的详细步骤

2024-04-02 19:04:59 207人浏览 泡泡鱼
摘要

目录Mysql Binlog 简介开启Binlog使用Binlog恢复数据附录总结 mysql Binlog 简介 Mysql Binlog是二进制格式的日志文件Binlo

mysql Binlog 简介

Mysql Binlog是二进制格式的日志文件
Binlog是用来记录Mysql内部对数据库的改动(只记录对数据的修改操作),主要用于数据库的主从复制以及增量恢复

开启Binlog

查看是否打开了Binlog 【ON表示已经打开 OFF表示关闭 默认关闭状态】

show variables like ‘%log_bin%’;

开启Binlog 【修改完以后重启服务】

方法1:
找到mysql配置中的my.ini文件,在[mysqld]下面添加如下参数
log_bin=mysql-bin
binlog-format=ROW

Mysql binlog日志有三种格式 【binlog-format参数】

1.Statement:每一条会修改数据的sql都会记录在binlog中
2.Row:不记录sql语句上下文相关信息,仅保存哪条记录被修改
3.Mixedlevel:是以上两种level的混合使用,一般的语句修改使用statment格式保存binlog,如一些函数,statement无法完成主从复制的操作,则采用row格式保存binlog,MySQL会根据执行的每一条具体的sql语句来区分对待记录的日志形式,也就是在Statement和Row之间选择一种.新版本的MySQL中对row level模式也被做了优化,并不是所有的修改都会以row level来记录,像遇到表结构变更的时候就会以statement模式来记录。至于update或者delete等修改数据的语句,还是会记录所有行的变更。

方法2:
SET SQL_LOG_BIN=1 命令开启
SET SQL_LOG_BIN=0 命令关闭

开启以后,重启服务会发现data目录下多了日志文件

使用Binlog恢复数据

show master status; 【查看当前正在写入的binlog文件】

测试表, 测试update 【全部改为赵六,再改为老王,恢复为全部为赵六】


update user set name = ‘赵六’;
update user set name = ‘老王’;

show binlog EVENTS in ‘binlog.000178’ ; 【查询所需要恢复的事件起止的位置】

如果是恢复最后一次修改前数据,则使用记录的倒数第二条日志的结束起止坐标

cmd 切换到MySQL存放mysqlbinlog.exe应用程序的bin目录后,执行以下命令,指定数据恢复起始位置,转换为SQL文件

这里的起止坐标为2536 - 2848
mysqlbinlog --no-defaults “D:\DataBase\MYSQL\mysql-8.0.24-winx64\data\binlog.000178” -d test --skip-gtids --start-position=2536 --stop-position=2848>test.sql

cmd登录MySQL,切换到对应数据库,执行命令指定SQL文件位置恢复数据

mysql -uroot -p123456

use test;
source D:\DataBase\MYSQL\mysql-8.0.24-winx64\bin\test.sql

再次查询表数据

附录

cmd 切换到MySQL存放mysqlbinlog.exe应用程序的bin目录后,执行以下命令,可以将Binlog文件转换为txt文件,方便阅读理解

cmd 切换到MySQL存放mysqlbinlog.exe应用程序的bin目录后,执行以下命令,可以一次性完成数据恢复

mysqlbinlog.exe --no-defaults --start-position=2536 --stop-position=2848 --database=test “D:\DataBase\MYSQL\mysql-8.0.24-winx64\data\binlog.000178” | mysql -u root -p

mysqlbinlog: [ERROR] unknown variable ‘default-character-set=utf8’.

如果遇到这个错误原因是mysqlbinlog这个工具无法识别binlog中的配置中的default-character-set=utf8这个指令
两个方法可以解决这个问题:
一:在MySQL的配置/etc/my.cnf中将default-character-set=utf8 修改为 character-set-server = utf8,需要重启MySQL服务
二:用mysqlbinlog --no-defaults mysql-bin.000004 命令打开

总结 

到此这篇关于MySQL数据库通过Binlog恢复数据的文章就介绍到这了,更多相关MySQL Binlog恢复数据内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

您可能感兴趣的文档:

--结束END--

本文标题: MySQL数据库通过Binlog恢复数据的详细步骤

本文链接: https://www.lsjlt.com/news/150625.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • MySQL数据库通过Binlog恢复数据的详细步骤
    目录Mysql Binlog 简介开启Binlog使用Binlog恢复数据附录总结 Mysql Binlog 简介 Mysql Binlog是二进制格式的日志文件Binlo...
    99+
    2024-04-02
  • 通过binlog恢复mysql数据
    通过binlog恢复mysql数据 基本流程 一、确定要恢复的时间点 确定要恢复到的时间点,可以使用以下命令查看binlog相关信息;或者根据误操作的时间来决定要恢复的时间点。 # 查询 BINLO...
    99+
    2023-09-12
    mysql 数据库
  • MySQL——通过binlog恢复数据
    目录 1.binlog基本概念 2.MySQL开启binlog 3.使用binlog日志恢复数据 3.1.恢复前准备工作 3.2.数据恢复 3.2.1.通过mysqlbinlog将binlog转为sql,以方便查询具体位置 3.2.2.查看...
    99+
    2023-09-01
    mysql
  • MySQL binlog日志恢复数据详细操作步骤
    场景 遇到后台数据批量误删,需要进行数据恢复。 准备 确定需要恢复数据的时间段 2、查看是否开启了binlog (1)终端执行命令,连接mysql mysql -h地址 -P端口号 -u账号 -p 输入密码后回车即可连接成功 (2)执行如...
    99+
    2023-08-17
    数据库 sql mysql
  • mysql通过binlog恢复或回滚数据
    前言 近期项目开发中出现了一次误删的操作,于是在网上查找了mysql的回滚操作,这里记录一下。 简单说下binlog,binlog是mysql中的二进制日志,其记录了数据库发生更改的各种变化。所以通过binlog可以回滚或者恢复失误的操作。...
    99+
    2023-08-31
    mysql mysqlbinlog binlog2sql mysql回滚
  • Mysql如何通过binlog日志恢复数据详解
    目录前言方法如下总结前言 MySQL的binlog日志是MySQL日志中非常重要的一种日志,记录了数据库所有的DML操作。通过binlog日志我们可以进行数据库的读写分离、数据增量备...
    99+
    2024-04-02
  • mysql通过binlog日志恢复误删数据
    1、先查看binlog功能是否开启 show variables like '%log_bin%'; log_bin为ON说明可以使用binlog恢复,如果为OFF说明没有开启binlog。 2、删...
    99+
    2023-09-06
    mysql 数据库
  • MYSQL Binlog恢复误删数据库详解
    对表误删或执行缺少条件的修改 SQL 导致修改了表内其他数据时,我们需要想办法将数据恢复回来。 先创建两个测试表 table_1 CREATE TABLE `table_1` ( `id` int(0) NOT N...
    99+
    2022-11-18
    MYSQL Binlog数据还原 MYSQL Binlog恢复数据
  • MySQL中怎么通过binlog日志恢复数据
    本篇文章为大家展示了MySQL中怎么通过binlog日志恢复数据,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。一、数据备份操作的前一天晚上进行了日常逻辑备份mysq...
    99+
    2024-04-02
  • Mysql的Binlog数据恢复:不小心删除数据库详解
    Mysql的Bin log数据恢复:不小心删除数据库 前言:因为不小心删除了测试机器上Mysql的一整个数据库Schema,因为是测试机所以没有做备份,现在通过MySQL的Bin log方式恢复到删除以前的...
    99+
    2024-04-02
  • Mysql数据库详细安装步骤
    本篇内容介绍了“Mysql数据库详细安装步骤”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Mysql安装步...
    99+
    2024-04-02
  • 阿里云数据库恢复备份文件的详细步骤
    在使用阿里云数据库的过程中,可能会遇到各种问题,其中可能就包括数据库的备份文件丢失。这时候,我们需要了解如何恢复阿里云数据库的备份文件。本文将详细说明如何操作。 步骤1:登录阿里云控制台 首先,我们需要登录阿里云的控制台。在控制台的右上角,...
    99+
    2023-12-09
    阿里 备份文件 步骤
  • PowerDesigner 连接MySQL数据库详细步骤
    新建一个 Physical Data ,选择自己要连接的数据库 在PowerDesigner菜单栏中,依次点击“File ->New Model->Physical Data” 点击OK 2、连接数...
    99+
    2023-09-03
    powerdesigner 数据库
  • MySQL的binlog如何恢复数据
    小编给大家分享一下MySQL的binlog如何恢复数据,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!1. binlogbinlo...
    99+
    2024-04-02
  • QT连接MYSQL数据库的详细步骤
     第一步要加入对应的数据库模块(sql)在工程文件(.pro)介绍几个类(也是对应的头文件)  QSqlError提供SQL数据库错误信息的类 ...
    99+
    2024-04-02
  • 利用MySQL的binlog恢复误删的数据库
    1 查看当前数据库内容并备份数据库 查看数据库信息: 备份数据库: [root@localhost ~]# mysqldump -u root -p t > /mnt/t.sqlEnter pass...
    99+
    2023-09-23
    数据库 mysql sql
  • sql2005数据库转为sql2000数据库的详细步骤
    本篇内容介绍了“sql2005数据库转为sql2000数据库的详细步骤”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够...
    99+
    2024-04-02
  • Mysql 通过frm&ibd 恢复数据
           mysql存储在磁盘中,各种天灾人祸都会导致数据丢失。大公司的时候我们常常需要做好数据冷热备,对于小公司来说要做好所有数据备份需要支出大量的成本,很多公...
    99+
    2024-04-02
  • 本地安装MySQL数据库详细步骤
    文章目录 【确认本地是否安装mysql】【下载mysql安装包】【添加配置文件并安装mysql】【修改mysql密码】【配置环境变量】【总结】 前期在windows电脑尝试安装mysql,经历诸多...
    99+
    2023-09-05
    mysql 数据库 java
  • 如何利用MySQL的binlog恢复误删数据库详解
    目录1 查看当前数据库内容并备份数据库 2 开启bin_log功能 3 模拟误操作(插入3条数据,删除数据库) 4 数据恢复 5 总结 1 查看当前数据库内容并备份数据库 查看数据...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作