Mysql誤刪除DELETE數(shù)據(jù)找回操作指南
1.查看binlog是否開(kāi)啟
show variables like '%log_bin%';

2.查看數(shù)據(jù)文件存放路徑:bin-log路徑
show variables like '%datadir%';

3.找到刪除時(shí)間段的binlog,翻譯為sql
mysqlbinlog --base64-output=decode-rows -v --database=數(shù)據(jù)庫(kù)名 --start-datetime="2022-10-19 16:40:00" --stop-datetime="2022-10-19 16:450:00" "D:\Program Files\mysql-5.7.30-winx64\mysqldb\bin.000041" > d:\mysqllog.sql
4.在生成的 mysqllog.sql 文件同路徑下 ,生成將delete翻譯為insert的sql文件
linux:
cat mysqllog.sql | sed -n '/###/p' | sed 's/### //g;s//*./,/g;s/DELETE FROM/;INSERT INTO/g;s/WHERE/SELECT/g;' |sed -r 's/(@17.),/\1;/g' | sed 's/@1=//g'| sed 's/@[1-9]=/,/g' | sed 's/@[1-9][0-9]=/,/g' > mysqllogOK.sql
5、windows:
在生成的sql文件同目錄下,創(chuàng)建.vbs文件,寫入如下內(nèi)容,并雙擊執(zhí)行
'========================== '用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打開(kāi)文本文件 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.Close
6、把mysqllog.sql文件和生成的windows中的.vbs放在同一個(gè)文件夾中雙擊執(zhí)行生成mysqllogOK.sql文件
7、進(jìn)入mysqllogOK.sql文件刪除其中的delete保留insert再去執(zhí)行mysqllogOK.sql就成功了
8、如果binlog日志沒(méi)有開(kāi)啟可以進(jìn)行開(kāi)啟
linux:
cd /usr/etc/vim my.cnf

log-bin=mysql-bin # 開(kāi)啟Binlog 一般只需要修改這一行即可 binlog-format=ROW # 設(shè)置格式 此行可以不加 命令設(shè)置即可 詳見(jiàn)下方拓展 server_id=1 # 配置serverID 這一行本來(lái)就存在 systemctl restart mysqld #重啟mysql
總結(jié)
到此這篇關(guān)于Mysql誤刪除DELETE數(shù)據(jù)找回操作的文章就介紹到這了,更多相關(guān)Mysql誤刪除數(shù)據(jù)找回內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
mysql中insert與select的嵌套使用解決組合字段插入問(wèn)題
本節(jié)主要介紹了mysql中insert與select的嵌套使用解決組合字段插入問(wèn)題,需要的朋友可以參考下2014-07-07
詳解Mysql多表聯(lián)合查詢效率分析及優(yōu)化
這篇文章主要介紹了Mysql多表聯(lián)合查詢效率分析及優(yōu)化,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2015-08-08
MySQL事務(wù)的ACID特性以及并發(fā)問(wèn)題方案
這篇文章主要介紹了MySQL事務(wù)的ACID特性以及并發(fā)問(wèn)題方案,文章圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下2022-07-07
MySQL數(shù)據(jù)庫(kù)壓縮版本安裝與配置詳細(xì)教程
今天教各位小伙伴怎么安裝及配置Mysql數(shù)據(jù)庫(kù),文中有非常詳細(xì)的圖文解說(shuō)及代碼示例,對(duì)剛?cè)腴Tmysql的小伙伴們很有幫助,需要的朋友可以參考下2021-05-05

