mysql 数据恢复 binlog

2023-10-27

被删库勒索的一次记录

项目在云服务器运行了一年多了,中间迁移过一次,从阿里迁到华为了。

迁移的时候把数据库文件 test.sql 用完了之后就扔在了服务器上。

最近访问系统的时候,忽然系统崩溃,表不存在了。

数据库连接工具也连不上了,到服务器上的数据库连接工具也登录不进去了。

后来发现root用户没有了,新增了root用户,进入数据库,发现这个东西。。。

woc,中勒索病毒了?(事后发现不是服务器中毒,是密码太简单被破解了。。。)

想办法恢复数据吧,多方打探,找到通过binlog日志文件恢复数据的方法,但是基本都是linux系统的,但是大同小异,windows上基本一样。

介绍一下binlog日志文件,记录了库表字段数据的增删改操作,可用于主从数据同步、数据恢复。

window环境

1、登录mysql

mysql -u root -p

2、查看日志文件(mysql8.0以前,是默认不开启的,得亏我用的是8之后的版本,不然真凉了)

show variables like ‘%log_bin%’;

查看mysql目录下的 .ini 配置文件datadir配置的地址(我这里没有配置,默认就在mysql安装目录的data目录下)

mysql安装目录的bin目录下,管理员打开cmd

3、执行命令(我为了方便把binlog.000001文件复制到bin目录下一份)

mysqlbinlog --no-defaults --base64-output=decode-rows -v binlog.000001 > binlog01.sql

生成下图带有被注释掉的SQL 语句的文件,通过这个文件

注:文件太大普通编辑器打不开的话,安装UltraEdit编辑器打开,拖到最后,这里记录了他的罪行

找到 删库前,最后一条正常的业务操作, at  648335612 (记住这个数字)

 拉到最前面,找到第一个at  4  (记住这个数字)

4 删除坏掉的库,把原来 迁移的时候把数据库文件 test.sql 重新导入(这个文件的时间和日志的时间是匹配的,binlog文件是在此基础之后记录的)

注:每次重启MySQL服务和刷新日志的话,会产生新的日志文件,如果是多个,根据时间执行执行。

5 执行命令  

--start-position=4 //开始操作记录节点(前面at后面的数字)

--stop-position=648334479  //结束操作记录节点(前面at后面的数字)

-d databasename  //恢复指定数据库,mysql里面可能有多个数据库,不指定恢复所有库

binlog.000003 

|mysql -uroot -p password databasename  //登录mysql信息

mysqlbinlog  --start-position=4 --stop-position=648334479 -d databasename binlog.000003|mysql -uroot -p password databasename

 等待完成,恢复成功。

最后:密码用的复杂一些,记得开启日志(损耗1%的性能左右),记得保存好迁移时的数据库文件。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

mysql 数据恢复 binlog 的相关文章

  • C#:SQL 查询生成器类

    在哪里可以找到好的 SQL 查询构建器类 我只需要一个简单的类来构建 SQL 字符串 仅此而已 我需要它用于 C 和 MySql 我真的不需要像 Linq 或 NHibernate 这样的东西 谢谢 由于 Google 将我引导至此页面 我
  • 将 UPDATE 转换为 INSERT INTO ON DUPLICATE KEY UPDATE 语句

    我有这个 UPDATE MySQL 语句 效果很好 UPDATE table1 Inner Join table2 ON table2 id table1 gw id SET table1 field1 1 table1 field2 2
  • 通过连接从两个表中删除?

    我有两个表如下 tbl1 tbl2 id article id title image whole news tags author older datetime 其中 tbl1 id gt tbl2 article id 如何从两个表中删
  • 社交应用程序的数据库设计和优化注意事项

    通常的情况 我有一个简单的应用程序 允许人们上传照片并关注其他人 因此 每个用户都会有类似 墙 或 活动源 的东西 他或她可以在其中看到他 她的朋友 他或她关注的人 上传的最新照片 大多数功能都很容易实现 然而 当涉及到这个历史活动源时 由
  • Mysql innoDB 不断崩溃[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我的数据库 mysql 服务器不断崩溃 重新启动 我不知道该怎么办 我不断在 dbname org err 文件中收到以下内容 13120
  • PDO SQLSRV 和 PDO MySQL 在获取 int 或 float 时返回字符串

    当您获取时 PDO MS SQL Server 和 PDO MySQL 都会返回一个字符串数组 即使列的 SQL 类型本应是数字类型 例如 int 或 float 我设法解决了这个问题 但我想了解为什么它们一开始就这样设计 是不是因为PDO
  • 查询中列的顺序重要吗?

    当从 MySQL 表中选择列时 与表中的顺序相比 选择列的顺序是否会影响性能 不考虑可能覆盖列的索引 例如 您有一个包含行 uid name bday 的表 并且有以下查询 SELECT uid name bday FROM table M
  • MYSQL - 查找最近的前一天

    我可以以某种方式 不使用 PHP 找到一周中最近的前一天日期吗 Like 最近的上一个星期二的日期是哪一天 CURDATE INTERVAL WEEKDAY CURDATE wday IF WEEKDAY CURDATE gt wday 0
  • 如何使用 MySQL 的 LOAD DATA LOCAL INFILE 在导入 CSV 时将字符串日期更改为 MySQL 日期格式

    我正在使用 MySQL 的 LOAD DATA LOCAL INFILE SQL 语句将数据从 CSV 文件加载到现有数据库表中 下面是一个 SQL 语句示例 LOAD DATA LOCAL INFILE file csv INTO TAB
  • 如何在 Laravel 查询中使用多个 OR,AND 条件

    我需要 Laravel 查询帮助 我的自定义查询 返回正确结果 Select FROM events WHERE status 0 AND type public or type private 如何写这个查询Laravel Event w
  • PHP 绑定“bigint”数据类型(MySQLi 准备好的语句)

    studentId 57004542323382 companyOfferId 7 sql INSERT INTO studentPlacement companyOfferId studentId VALUES if stmt db gt
  • Hibernate 对集合的查询过滤器

    我想执行以下查询 from Item i where i categoryItems catalogId catId 然而 这会产生以下异常 非法尝试取消引用集合 所以我用谷歌搜索 找到了这个 Hibernate 论坛帖子https for
  • MYSQL 区分大小写的 utf8 搜索(使用 hibernate)

    我的登录表具有 utf8 字符集和 utf8 排序规则 当我想要检查用户名并检索该特定用户名的其他信息时 hql 查询会为我提供小写和大写相同的结果 我应该如何处理适用于案例的 HQL 查询 我使用 Mysql 5 和 java hiber
  • MySQL 按重复项从上到下排序

    我有一个lammer问题 因为我不是mysql专业人士 我有类似的字段 id color 1 red 2 green 3 yellow 4 green 5 green 6 red 我想按重复项进行分组 最常见的重复项先进行分组 所以应该这样
  • 在服务器上找不到本地主机或 phpMyAdmin:如何修复?

    我按照安装说明进行操作PHP MySQL and PHPMyAdmin 但是当我尝试访问时http localhost phpmyadmin 我收到此错误 未找到 在此找不到请求的 URL phpmyadmin 服务器 然后我尝试访问loc
  • Mysql 将 int 转换为 MAC

    我有一些数据可以转换 其中有 2 列 其中一列有 IP 它包含整数值 我在 mysql 查询中使用了以下函数 是否有一个函数可以用来转换我的 mac 列 其中包含整数和数据类型是bigint to MAC地址 SELECT INET NTO
  • Java JDBC:更改表

    我希望对此表进行以下修改 添加 状态列 varchar 20 日期列 时间戳 我不确定该怎么做 String createTable Create table aircraft aircraftNumber int airLineCompa
  • INSERT..RETURNING 在 JOOQ 中不起作用

    我有一个 MariaDB 数据库 我正在尝试在表中插入一行users 它有一个生成的id我想在插入后得到它 我见过this http www jooq org doc 3 8 manual sql building sql statemen
  • 同一配置文件上的两个不同提供程序

    我在用着实体框架 6 1 0 I have 2 家提供者 MysqlClient 和 SQLServerCE 我需要创建2个不同的DBContext 这迫使我创造2个配置类因为mysql有一些不同的东西 但是当我初始化应用程序时 Datab
  • 如何修改现有表以添加时区

    我有一个包含 500 多个表的大型应用程序 我必须将应用程序转换为时区感知 当前应用程序使用new java util Date GETDATE 与服务器的时区 即没有任何时区支持 我已将这项任务分为几个步骤 以便于开发 我确定的第一个步骤

随机推荐

  • 原理解析:JS 代码是如何被浏览器引擎编译、执行的?

    原理解析 JS 代码是如何被浏览器引擎编译 执行的 分析浏览器引擎对 JS代码的编译情况 并结合日常的 JavaScript开发经验 重新理解底层的编译解析机制 对其底层原理的理解 将有助于理解前端的跨端应用 以及一套代码生成多种小程序相关
  • csu 1809 Parenthesis 2016湖南省赛 G

    Problem acm csu edu cn csuoj problemset problem pid 1809 vjudge net contest 161962 problem G Reference blog csdn net l95
  • spring之bean注入的意义

    简而言之就是 首先 service注解在当前类的上边 表示在当前类是spring管理的一个bean 使用 autowired 将另外一个A类的实体bean注入到当前类中 让当前类具备那个A类的功能
  • Android SDK & AVD Manager

    0 前言 Android源码中的prebuilts devtools tools android程序可根据不同的参数来启动SDK Manager或AVD Manager 1 SDK Manager 1 启动 android or andro
  • Chrome 基于 Wappalyzer 查看网站所用的前端技术栈

    1 找到谷歌商店 https chrome google com webstore search wappalyzer utm source ext app menu 2 搜索 Wappalyzer 3 添加至Chrome 4 使用 插件
  • MySQL的脏读、幻读、不可重复读

    首先我们要知道 我们的脏读 幻读 不可重复读这些概念是在事务中的概念 脏读 也就是读取了未提交的数据 比如我开启了一个事务A 在里面操作一个用户表 获取里面一个用户的积分 比如此时这个用户的积分是100 此时有另外一个事务B也操作了这个用户
  • LD3320语音识别

    芯片介绍 LD3320 不需要外接任何辅助的Flash芯片 RAM芯片和AD芯片 就可以完成语音识别功能 每次识别最多可以设置50项候选识别句 每个识别句可以是单字 词组或短句 另一方面 识别句内容可以动态编辑修改 只需要主控MCU把识别关
  • 碎碎念,浅浅饮-------Day30

    这不是一篇关乎技术的文章 它偏离了我原本的计划轨迹 但是 相信它的意义会远超出任何一项技术带给我的价值 高考已经开始了 不知道在这片宁静的夜空下有多少人已经美美的睡了 香甜憨然 又有多少人这睡着的眼角还挂着泪滴 偶尔蹙起眉头 却也记载不下那
  • 固态硬盘接口类型介绍

    固态硬盘接口类型介绍 现在装机硬盘肯定会首选SSD 容量小一点不怕 后面再补一个机械硬盘不迟 SSD有着稳固和高速的优势 深受用户喜爱 然而SSD有着各种各样的尺寸和接口 并不是每一个用户的电脑都能通用 所以选购SSD硬盘前必须先了解SSD
  • ajax请求出现闪屏,jquery $.Ajax 火狐浏览器闪屏解决办法

    本文章介绍了关于jquery的async false Ajax 火狐浏览器闪屏解决办法 jquery的async false 这个属性 默认是true 异步 false 同步 代码如下 复制代码 ajax type post url pat
  • vue2知识点梳理

    Vue梳理 对于Vue 我们并不陌生 现在我们来梳理一下关于它的东西吧 知识点 1 生命周期 最基本的就是它的生命周期 beforeCreate 在 beforeCreate 生命周期函数执行时 data 和 methods 中的数据都还没
  • Open3D (C++) 点云按坐标值大小进行排序

    目录 一 概述 二 点云排序 三 结果展示 一 概述 如题 点云按坐标大小进行排序 二 点云排序 代码以按照Z坐标的大小按照从小到大进行排序为例 include
  • java输出1~100之间的全部素数的5种方法

    文章目录 一 前言 二 需求分析 2 1 什么是素数 2 2 分析 三 代码实现 3 1 方法一 根据素数的定义来遍历检查 3 2 方法二 根据判断条件2进行遍历检查 减少遍历次数 3 3 方法三 根据判断条件3进行遍历检查 减少遍历次数
  • 达梦数据库调优组合索引的使用

    调优工程中对组合索引的使用的一个小总结 一 组合索引的执行计划 首先关于几个概念 等值条件和范围条件 1 等值条件 C1 X C1 X OR C1 Y 会被优化成C1 IN X Y C1 IN X Y 这种形式的我们都叫做等值条件 2 范围
  • Linux 安装Xrdp,实现RDP连接

    linux 安装xrdp RDP 连接 安装前提 root 权限 root server 76 conf yum install xrdp root 权限 安装 yum install xrdp Loaded plugins fastest
  • Eigen不同的方法来求矩阵的逆的效率

    背景 不同尺寸的矩阵 求逆使用不同的方法 会有不同的效率的 16x16矩阵的直接求逆与PartialPivLU的效率对比 本人亲测 1 实现代码 GetSystemTimeInMacroSecond的实现 boost posix time
  • 自适应卡尔曼滤波_【导师论坛】

    复杂噪声情况下的新型卡尔曼滤波器研究 主讲 黄玉龙 副教授 哈尔滨工程大学 时间 2019年1月17日 周四 14 30 16 30 地点 智能科学学院主楼401会议室 主讲人介绍 黄玉龙 博士 哈尔滨工程大学自动化学院副教授 2018年1
  • 远程代码执行漏洞的利用与防御

    什么是RCE漏洞 全称 remote command code execute 分为远程命令执行和远程代码执行 1 命令执行漏洞 直接调用操作系统命令 2 代码执行漏洞 靠执行脚本代码调用操作系统命令 一般出现这种漏洞 是因为应用系统从设计
  • 第十届蓝桥杯省赛Java B组 数的分解

    试题 D 数的分解 本题总分 10 分 问题描述 把 2019 分解成 3 个各不相同的正整数之和 并且要求每个正整数都不包 含数字 2 和 4 一共有多少种不同的分解方法 注意交换 3 个整数的顺序被视为同一种方法 例如 1000 100
  • mysql 数据恢复 binlog

    被删库勒索的一次记录 项目在云服务器运行了一年多了 中间迁移过一次 从阿里迁到华为了 迁移的时候把数据库文件 test sql 用完了之后就扔在了服务器上 最近访问系统的时候 忽然系统崩溃 表不存在了 数据库连接工具也连不上了 到服务器上的