最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

MySQL通過(guò)日志恢復(fù)數(shù)據(jù)的操作步驟

 更新時(shí)間:2024年12月26日 09:42:28   作者:alvin_2005  
在MySQL中恢復(fù)誤刪除的數(shù)據(jù)是一個(gè)常見(jiàn)但復(fù)雜的問(wèn)題,具體的方法取決于幾個(gè)因素,包括您是否有備份、使用的是哪種存儲(chǔ)引擎(如InnoDB或MyISAM)、以及您的數(shù)據(jù)庫(kù)配置等,本文給大家介紹了MySQL通過(guò)日志恢復(fù)數(shù)據(jù)的操作步驟,需要的朋友可以參考下

試驗(yàn)環(huán)境:Windows Server2012 r2、MySql-8.0.27-winx64。

1、先檢查MySQL有沒(méi)有開(kāi)啟binlog日志

通過(guò)下面的SQL命令查看MySQL是否開(kāi)啟日志以及日志文件的位置:

show variables like '%log_bin%'

執(zhí)行結(jié)果如下圖所示:

圖中,log_bin的值為“ON”表示MySQL開(kāi)啟了binlog日志功能;log_bin_basename表示日志文件的位置及文件名。 如果log_bin的值為“OFF”,那么意味著我們無(wú)法通過(guò)日志恢復(fù)被刪除的數(shù)據(jù),下面的步驟也就不用繼續(xù)啦。

2、查找刪除操作對(duì)應(yīng)的日志文件

由上圖可以看出,日志文件放在MySQL安裝目錄的data目錄下,且文件名為binlog。通過(guò)windows資源管理器打開(kāi)MySQL的data目錄,如下圖所示:

由圖中我們可以看到兩個(gè)名為binlog的文件,通過(guò)修改日期可以區(qū)分哪一個(gè)是我們要找的文件,這里假設(shè)我們的刪除操作包含在日志文件binlog.000025中。 

3、查看被刪除數(shù)據(jù)的日志位置

通過(guò)下面的SQL命令查看對(duì)應(yīng)的日志文件:

SHOW BINLOG EVENTS IN 'binlog.000025'

從查詢(xún)結(jié)果中找到刪除命令的開(kāi)始位置(pos):

如上圖所示,Pos=598431915對(duì)應(yīng)了刪除命令,但數(shù)據(jù)庫(kù)執(zhí)行刪除操作時(shí),都是以事務(wù)的形式開(kāi)始的,所以需要將開(kāi)始位置設(shè)定為Pos=598431671。繼續(xù)向下查找,可以找到最后一條刪除命令的位置Pos=613559555。

4、導(dǎo)出刪除操作對(duì)應(yīng)的SQL數(shù)據(jù)

 打開(kāi)windows命令行工具,將目錄切換到MySQL安裝目錄的bin目錄下,執(zhí)行下面的命令:

mysqlbinlog --no-defaults --base64-output=DECODE-ROWS -v --start-position=598431671 --stop-position=613559555 --database=【你的數(shù)據(jù)庫(kù)名稱(chēng)】 ..\data\binlog.000025 > restore.sql

命令執(zhí)行完成后,就會(huì)將被刪除的數(shù)據(jù)信息導(dǎo)出到名為“restore.sql”的文件中,打開(kāi)該文件,就可以看到被刪除數(shù)據(jù)的具體信息,如下圖所示:

 顯然,這不是我們想要的。不要著急,文件中前面這一堆是日志的頭部信息,我們可以通過(guò)查找關(guān)鍵字“flags: STMT_END_F”的方式,直接定位到我們想要的數(shù)據(jù),如下圖所示:

現(xiàn)在我們看到了,文件中“### DELETE FROM”開(kāi)始的代碼塊記錄了刪除的數(shù)據(jù),WHERE之后的每一行記錄了所刪除數(shù)據(jù)對(duì)應(yīng)字段(@k表示第k個(gè)字段)的值,我們就可以據(jù)此寫(xiě)出對(duì)應(yīng)的INSERT語(yǔ)句來(lái)恢復(fù)數(shù)據(jù)。假設(shè)表名為table_deleted,則上圖中對(duì)應(yīng)的用于恢復(fù)數(shù)據(jù)的SQL語(yǔ)句就可以寫(xiě)成:

INSERT INTO table_deleted VALUES(527182,15134443,0,0,'2024-12-18 11:19:18', NULL);

如果文件中記錄了多條刪除記錄,我們就需要逐一寫(xiě)出對(duì)應(yīng)的INSERT語(yǔ)句。

5、執(zhí)行SQL,恢復(fù)被刪除的數(shù)據(jù)

執(zhí)行這些INSERT語(yǔ)句,就可以完成數(shù)據(jù)恢復(fù)了。 

以上就是MySQL通過(guò)日志恢復(fù)數(shù)據(jù)的操作步驟的詳細(xì)內(nèi)容,更多關(guān)于MySQL日志恢復(fù)數(shù)據(jù)的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

最新評(píng)論

邳州市| 客服| 航空| 青冈县| 光泽县| 荔浦县| 濮阳县| 尖扎县| 长治县| 岐山县| 丁青县| 四会市| 惠来县| 新津县| 镇赉县| 堆龙德庆县| 通山县| 永清县| 瑞安市| 兴海县| 天台县| 四平市| 赤水市| 平顶山市| 五台县| 双牌县| 密云县| 文登市| 金山区| 博白县| 平顶山市| 渑池县| 翁牛特旗| 宜兴市| 永州市| 昭通市| 五寨县| 九江市| 万源市| 阿克陶县| 高淳县|