MySQL數(shù)據(jù)庫誤刪回滾的解決
某次一不小心,用了delete from xxx 刪除了幾條重要數(shù)據(jù),在網(wǎng)上找了很多方法,但都比較零散,打算記錄本次數(shù)據(jù)找回的過程。
大致分為以下幾步
1、查看binlog是否開啟
# log_bin是ON,就說明打開了 OFF就是關(guān)閉狀態(tài),以下操作,只有為 ON 時(shí)有效。 show variables like 'log_bin';
2、找到binlog文件名
show master logs;
運(yùn)行以上代碼,如下圖 TS1-bin.000009 就是我們要找的文件名

3、查看binlog日志位置
show variables like '%datadir%';
4、根據(jù)上面得到的位置,去找到 TS1-bin.000009 文件
5、進(jìn)入到mysql安裝目錄的bin目錄下,執(zhí)行以下命令根據(jù)誤刪除的時(shí)間范圍從TS1-bin.000009文件導(dǎo)出成sql文件
mysqlbinlog --base64-output=decode-rows -v --database=數(shù)據(jù)庫名 --start-datetime="2022-06-29 15:35:00" --stop-datetime="2022-06-29 15:45:00" C:/Users/Administrator/Desktop/TS1-bin.000009 > C:/Users/Administrator/Desktop/mysqllog.sql
這里我把 TS1-bin.000009 文件拷貝到了桌面,因?yàn)樵撐募即娣怕窂接锌崭瘢瑢?dǎo)致命令執(zhí)行失敗,無法找到路徑。
得到 mysqllog.sql 文件后,可以用記事本打開,搜索 DELETE 關(guān)鍵字,找到刪除數(shù)據(jù)的記錄
6、將 DELETE 語句改造成 INSERT 語句,在windows下用vbs來實(shí)現(xiàn),把下面代碼復(fù)制保存為:deleteToinsert.vbs 文件(一定要是.vbs格式文件) 與mysqllog.sql在同一目錄下,然后雙擊運(yùn)行,會(huì)生成mysqllogOK.sql文件就是我們要的INSERT語句
'==========================?
'用VBS實(shí)現(xiàn) MYSQL binglog DELETE轉(zhuǎn)INSERT?
'==========================?
function replaceregex(patern,str,tagstr)?
? ? dim regex,matches?
? ? set regex=new regExp?
? ? regex.pattern=patern?
? ? regex.IgnoreCase=true?
? ? regex.global=true?
? ? matches=regex.replace(str,tagstr)?
? ? replaceregex=matches?
end function
?
'======Mysql binlog DELETE轉(zhuǎn)INSERT================
'VBS打開文本文件
Set oldStream = CreateObject("ADODB.Stream")
oldStream.CharSet = "utf-8"
oldStream.Open
oldStream.LoadFromFile("mysqllog.sql") 'binLog生成的DELETE原日志文件
oldText = oldStream.ReadText()
? ? newText=replace(oldText,"### DELETE FROM", ";INSERT INTO")
? ? newText=replace(newText,"### WHERE", "SELECT")
? ? newText=replace(newText,"###", "")
? ? newText=replace(newText,"@1=", "")
? ? newText=replaceregex("\@[1-9]=",newText, ",")
? ? newText=replaceregex("\@[1-9][0-9]=",newText, ",")
oldStream.Close
'VBS保存文件
Set newStream = CreateObject("ADODB.Stream")
newStream.Type = 2 'Specify stream type - we want To save text/string data.
newStream.Charset = "utf-8" 'Specify charset For the source text data.
newStream.Open 'Open the stream And write binary data To the object
newStream.WriteText newText
newStream.SaveToFile "mysqllogOK.sql", 2 'DELETE轉(zhuǎn)成INSERT以后的新的SQL文件名
newStream.Close7、拿到對應(yīng)的 INSERT 語句后執(zhí)行。
參考文章
https://blog.csdn.net/qq_36602951/article/details/120729047
https://juejin.cn/post/7028955574242902023
到此這篇關(guān)于MySQL數(shù)據(jù)庫誤刪回滾的解決的文章就介紹到這了,更多相關(guān)MySQL數(shù)據(jù)庫誤刪回滾內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- mysql 找回誤刪表的數(shù)據(jù)方法(必看)
- 關(guān)于mysql數(shù)據(jù)庫誤刪除后的數(shù)據(jù)恢復(fù)操作說明
- MySQL數(shù)據(jù)誤刪除的快速解決方法(MySQL閃回工具)
- MySQL數(shù)據(jù)庫誤刪恢復(fù)的超詳細(xì)教程
- Mysql恢復(fù)誤刪庫表數(shù)據(jù)完整場景演示
- MySQL誤刪后使用binlog恢復(fù)數(shù)據(jù)的實(shí)現(xiàn)方法
- MYSQL?Binlog恢復(fù)誤刪數(shù)據(jù)庫詳解
- MySQL恢復(fù)誤刪數(shù)據(jù)圖文教程
- MySQL數(shù)據(jù)被誤刪的解決方法
- MySQL數(shù)據(jù)庫誤刪數(shù)據(jù)該怎么解決(這里有救!)
相關(guān)文章
安裝MySQl報(bào)Initializing?database?(may?take?a?long?time)錯(cuò)誤
這篇文章主要給大家介紹了關(guān)于安裝MySQl報(bào)Initializing?database?(may?take?a?long?time)錯(cuò)誤的解決辦法,文中通過圖文將解決的辦法介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用mysql具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2024-03-03
Mysql??DATEDIFF函數(shù)用法總結(jié)示例詳解
MySQL DATEDIFF()函數(shù)是MySQL中常見的日期函數(shù)之一,它主要用于計(jì)算兩個(gè)日期之間的差值,單位可以是天、周、月、季度和年,DATEDIFF函數(shù)用于返回兩個(gè)日期的天數(shù),這篇文章主要介紹了Mysql??DATEDIFF函數(shù),包括語法格式和示例代碼講解,需要的朋友可以參考下2023-03-03
MySQL利用frm文件和ibd文件恢復(fù)表結(jié)構(gòu)和表數(shù)據(jù)
當(dāng)MySQL數(shù)據(jù)庫遭遇崩潰或數(shù)據(jù)丟失時(shí),利用備份的 .frm 和 .ibd 文件恢復(fù)數(shù)據(jù)是一種有效的解決方案,.frm 文件包含表的結(jié)構(gòu)信息,而 .ibd 文件則存儲(chǔ)表的實(shí)際數(shù)據(jù),本文將提供一個(gè)詳細(xì)的步驟指南,演示如何利用這些文件恢復(fù)MySQL表數(shù)據(jù)和表結(jié)構(gòu),需要的朋友可以參考下2024-05-05
Windows下mysql 8.0.12 安裝詳細(xì)教程
這篇文章主要為大家詳細(xì)介紹了Windows下mysql 8.0.12 安裝詳細(xì)教程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-02-02
Navicat連接服務(wù)器MySQL數(shù)據(jù)庫步驟及遇到錯(cuò)誤和問題
Navicat是一款強(qiáng)大的數(shù)據(jù)庫管理工具,可以用來遠(yuǎn)程連接MySQL服務(wù)器,下面這篇文章主要給大家介紹了關(guān)于Navicat連接服務(wù)器MySQL數(shù)據(jù)庫步驟及遇到錯(cuò)誤和問題的相關(guān)資料,文中通過代碼及圖文介紹的非常詳細(xì),需要的朋友可以參考下2024-07-07

