mysql根據mysqlbinlog恢復找回被刪除的資料庫

来源:https://www.cnblogs.com/peachyy/archive/2023/07/31/17593556.html
-Advertisement-
Play Games

年初和朋友一起做了個項目,到現在還沒收到錢呢,今天中午時候突然聽說之前的資料庫被攻擊了,業務資料庫全部被刪除。看有沒有什麼辦法恢復,要是恢復不了,肯定也別想拿錢了吧? | README FOR RECOVERY DATA | | | | All your databases was backed u ...


年初和朋友一起做了個項目,到現在還沒收到錢呢,今天中午時候突然聽說之前的資料庫被攻擊了,業務資料庫全部被刪除。看有沒有什麼辦法恢復,要是恢復不了,肯定也別想拿錢了吧?

README FOR RECOVERY DATA
All your databases was backed up. You need to email us at [email protected] to recover your data. If the payment is not received within 48 hours, all your data will be deleted and used for our purposes
BITCOIN adress for pay bc1q8hsych64d5l79s8sztl3x7xj4u0rerltug9zcu 0,008 BTC
Bitcoin can be purchased with Alipay from: CoinCola: https://www.coincola.com/?lang=zh-HK BitValve: https://www.bitvalve.com/buy-bitcoin/alipay
Or another way: MoonPay: https://www.moonpay.com/buy Paybis: https://paybis.com/ Changelly: https://changelly.com/buy
After paying write to us in the mail with your DB IP: [email protected] and you will receive a link to download your database dump.

打開資料庫後就看到只剩下mysql和README FOR RECOVERY DATA資料庫,自己創建的資料庫已被刪除,順著打開README資料庫中僅有的一張表README FOR RECOVERY DATA。大概意思就是您的資料庫已被攻擊者備份了 請48小時內用比特幣支付。如果48小時內沒有付款 數據將被刪除。這不是赤裸裸的上演了互聯網勒索嘛。

觀察BinLog日誌文件

進入mysql數據存放目錄

-rw-r----- 1 polkitd input        56 Jan  5  2023 auto.cnf
-rw-r----- 1 polkitd input   2983124 Jan  5  2023 binlog.000001
-rw-r----- 1 polkitd input       157 Jan  5  2023 binlog.000002
-rw-r----- 1 polkitd input       157 Jan  5  2023 binlog.000003
-rw-r----- 1 polkitd input      2235 Jan  5  2023 binlog.000004
-rw-r----- 1 polkitd input       180 Jan  5  2023 binlog.000005
-rw-r----- 1 polkitd input 153788296 Jul 31 14:40 binlog.000006
-rw-r----- 1 polkitd input        96 Jan  5  2023 binlog.index

能看到binlog最新的一個文件binlog.000006 貌似還沒有被刪除。嘗試用日誌還原試一試

ps:這裡如果binlog文件都被刪除了的話 估計真不好恢復了。

基於mysqbinlog工具恢複數據

mysqlbinlog工具是把二進位的binlog轉換為文本格式,通常情況下就會用到mysqlbinlog 日誌管理工具。

在mysql安裝目錄下 bin目錄中正常會有一個工具命令行叫mysqbinlog 如果是跑在docker中的mysql可能是沒有這個命令的。需要從別的地方複製過來,複製資料庫命令版本需要和當前恢復的資料庫版本一致。比如我這裡就是因為安裝在docker中的資料庫,沒有mysqlbinlog工具。

先從官網下載資料庫包 解壓後 ,把bin中的mysqlbinlog複製到docker中進行執行。 如果有mysqlbinlog工具跳過此步。

Usage: ./mysqlbinlog [options] log-files
-d,-database-name:指定資料庫名稱,只列出指定的資料庫相關操作。
-o,-offset=#:忽略掉日誌中的前n行命令。
-r,--result-file=name:將輸出的文本格式日誌輸出到指定文件。
-s,--short-form:顯示簡單格式,省略掉一些信息。
-set-charset=char-name:在輸出為文本格式時,在文件第一行加上 set names char-name,這個選項在某些情況下裝載數據時非常有用。
--start-datetime=name,--stop-datetime=name: 指定日期間隔內的所有日誌。
--start-position=#, --stop-position=#:指定位置間隔內的所有日誌。

常用就參數項就以上幾個。

這裡假定我們恢復到binlog.000006文件中的內容。

mysqlbinlog binlog.000006 > /root/binlogtxt.sql

執行完成之後 /root/binlogtxt.sql文件中上百兆的語句。我想大概率是妥了。

恢復到資料庫中。

mysql -uroot -p 
source /root/binlogtxt.sql

像我這裡的場景是因為資料庫被drop了。恢復的時候需要註意 只需要恢復到drop前一步就行。如果全部日誌恢復後發現還是沒有資料庫,可能是恢復後又自動被日誌中drop語句刪除了。

怎麼知道恢復到哪一步之前呢?

1、可以打開/root/binlogtxt.sql文件 看到drop database語句後就註釋了。

2、./mysqlbinlog 導出文本的時候 設置時間段或者position位置。

打了navicat看了一下 果然恢覆成功了 表結構和數據都恢復的很完美。

轉載請註明出處。

作者:peachyy

出處:http://www.cnblogs.com/peachyy/

出處:https://peachyy.gitee.io/

出處:https://peachyy.github.io/

公眾號:


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 在C#中,數據類型分為值類型和引用類型兩種。 引用類型變數存儲的是數據的引用,數據存儲在數據堆中,而值類型變數直接存儲數據。對於引用類型,兩個變數可以引用同一個對象。因此,對一個變數的操作可能會影響另一個變數引用的對象。對於值類型,每個變數都有自己的數據副本,並且對一個變數的操作不可能影響另一個變數 ...
  • 博客推行版本更新,成果積累制度,已經寫過的博客還會再次更新,不斷地琢磨,高質量高數量都是要追求的,工匠精神是學習必不可少的精神。因此,大家有何建議歡迎在評論區踴躍發言,你們的支持是我最大的動力,你們敢投,我就敢肝 ...
  • 現代操作系統都是多任務的分時操作系統,也就是說同時響應多個用戶交互或同時支持多個任務處理,因為 CPU 的速度很快而用戶交互的頻率相比會低得多。所以例如在 Linux 中,可以支持遠大於 CPU 數量的任務同時執行,對於單個 CPU 來說,其實任務並不是在同時執行,而是操作系統在很短的時間內,使得多 ...
  • 原創文檔編寫不易,未經許可請勿轉載。文檔中有疑問的可以郵件聯繫我。 郵箱:[email protected] 說明 Centos 7 系列操作系統在安裝k8s時可能會遇到hostPath type check failed:/sys/fs/bpf is not a direcctory錯誤,該問題為內 ...
  • SQL Server根據查詢結果將數據導出教程,可以選擇導出源,選擇自己要導出的格式文件,然後選擇路徑,包含首列名稱。 ...
  • SQLite 是一個軟體庫,實現了自給自足的、無伺服器的、零配置的、事務性的 SQL 資料庫引擎。SQLite 是在世界上最廣泛部署的 SQL 資料庫引擎。SQLite 源代碼不受版許可權制。 ...
  • 在mysql未支持json數據類型時,我們通常使用varchar、blob或text的數據類型存儲json字元串,對mysql來說,用戶插入的數據只是序列化後的一個普通的字元串,不會對JSON文檔本身的語法合法性做檢查,文檔的合法性需要用戶自己保證。在使用時需要先將整個json對象從資料庫讀取出來,... ...
  • 一、視圖介紹 視圖(View):是一種虛擬存在的表,視圖中的數據並不在資料庫中實際存在,行和列數據來自,定義視圖時查詢使用的表,並且是在使用視圖時動態生成的。通俗的講,視圖只保存了查詢的SQL邏輯,不保存查詢的結果。 二、創建視圖 2.1 語法 create [or replace] view 視圖 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...