{eval=Array;=+count(Array);}

国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

問(wèn)答專欄Q & A COLUMN

MySQL數(shù)據(jù)庫(kù)丟失后如何自動(dòng)恢復(fù)呢? ?

snowLusnowLu 回答0 收藏1
收藏問(wèn)題

5條回答

RdouTyping

RdouTyping

回答于2022-06-28 15:48

這里介紹一種簡(jiǎn)單的方法,就是開啟binlog二進(jìn)制日志,記錄用戶對(duì)MySQL數(shù)據(jù)庫(kù)的所有操作(除了查詢),然后通過(guò)mysqlbinlog命令導(dǎo)出為SQL文件(剔除drop語(yǔ)句),最后再恢復(fù)就行,下面我簡(jiǎn)單介紹一下操作過(guò)程,實(shí)驗(yàn)環(huán)境Win10+MySQL5.5,感興趣的朋友可以嘗試一下:

1.首先,開啟binlog功能,這個(gè)需要修改MySQL安裝目錄下的my.ini配置文件,在[mysqld]下面添加一行設(shè)置“l(fā)og-bin = mysql-bin”就行,如下:

接著重啟MySQL服務(wù),就可以在MySQL數(shù)據(jù)目錄下看到生成的日志記錄文件—mysql-bin.000001和mysql-bin.index,其中mysql-bin.000001是日志文件,會(huì)自動(dòng)順序遞增,記錄每次數(shù)據(jù)庫(kù)重啟后用戶的所有操作記錄,mysql-bin.index是日志索引文件,記錄所有的日志文件名稱:

2.接著我們就可以模擬數(shù)據(jù)庫(kù)誤刪的過(guò)程了,這里我先新建了一個(gè)db數(shù)據(jù)庫(kù),然后創(chuàng)建了一個(gè)test數(shù)據(jù)表,依次insert插入3條數(shù),如下:

然后我們執(zhí)行“drop database db”刪除數(shù)據(jù)庫(kù),再“use db”時(shí)就會(huì)報(bào)錯(cuò),如下,告訴數(shù)據(jù)庫(kù)db不存在:

3.接著就是數(shù)據(jù)庫(kù)恢復(fù)的過(guò)程,打開cmd窗口,運(yùn)行“mysqlbinlog --no-defaults binlog日志文件路徑(這里換成你的binlog文件)”命令,就可以看到我們重啟數(shù)據(jù)庫(kù)后所有的數(shù)據(jù)庫(kù)操作記錄,如下,每個(gè)操作都有唯一的對(duì)應(yīng)位置,這里我們需要剔除掉drop語(yǔ)句,也就是恢復(fù)到958這個(gè)位置:

直接運(yùn)行“mysqlbinlog --no-defaults --stop-position="958" binlog日志文件路徑 > D: est.sql”命令,就可以導(dǎo)出958位置之前的所有數(shù)據(jù)庫(kù)記錄,并重定向?yàn)橐粋€(gè)sql文件,如下,這里你也可以使用start-position參數(shù)指定導(dǎo)出的起始位置:

4.最后我們?cè)龠B接MySQL數(shù)據(jù)庫(kù),導(dǎo)入這個(gè)sql腳本就可以正常恢復(fù)數(shù)據(jù)了,如下,和原始插入的數(shù)據(jù)一樣:

至此,我們就完成了MySQL數(shù)據(jù)庫(kù)的自動(dòng)恢復(fù)。總的來(lái)說(shuō),整個(gè)過(guò)程非常簡(jiǎn)單,只要你熟悉一下上面的操作過(guò)程,很快就能掌握的,對(duì)于一些簡(jiǎn)單的數(shù)據(jù)恢復(fù)來(lái)說(shuō),完全夠用,不過(guò)建議還是在日常開發(fā)過(guò)程中做好數(shù)據(jù)庫(kù)備份,在生產(chǎn)環(huán)境中慎重使用drop等刪除語(yǔ)句,網(wǎng)上也有相關(guān)教程和資料,介紹的非常詳細(xì),感興趣的話,可以搜一下,希望以上分享的內(nèi)容能對(duì)你有所幫助吧,也歡迎大家評(píng)論、留言進(jìn)行補(bǔ)充。

評(píng)論0 贊同0
  •  加載中...
Karrdy

Karrdy

回答于2022-06-28 15:48

做個(gè)數(shù)據(jù)備份表

評(píng)論0 贊同0
  •  加載中...
kviccn

kviccn

回答于2022-06-28 15:48

先分析一下,為啥丟失數(shù)據(jù),因?yàn)椴僮鲃h,還是數(shù)據(jù)庫(kù)掛了,因?yàn)椴僮鲃h,可以做備份,做備份的原理就是,數(shù)據(jù)庫(kù)主從復(fù)制,有mycat插件,原理就是用日志。達(dá)到主從復(fù)制,其次,如果是數(shù)據(jù)庫(kù)掛了。首先mysql是持久化存儲(chǔ),重啟就行,但是會(huì)丟失掛了未提交的事物。這得需要數(shù)據(jù)庫(kù)意外的數(shù)據(jù)來(lái)支持?jǐn)?shù)據(jù)庫(kù)恢復(fù)數(shù)據(jù)。系統(tǒng)日志啊,所以個(gè)人覺(jué)得,日志很重要。

評(píng)論0 贊同0
  •  加載中...
cgh1999520

cgh1999520

回答于2022-06-28 15:48

首先看看是什么丟失,是db 還是drop/truncate table ,如果這樣可以用備份來(lái)恢復(fù),如果是delete table 有備份可以用備份恢復(fù),沒(méi)有備份可以通過(guò)binlog 反項(xiàng)解析來(lái)進(jìn)行恢復(fù)

評(píng)論0 贊同0
  •  加載中...
kid143

kid143

回答于2022-06-28 15:48

試試回滾操作。如果不行,那就恢復(fù)備份。如果沒(méi)備份,那就完蛋了

評(píng)論0 贊同0
  •  加載中...

最新活動(dòng)

您已邀請(qǐng)0人回答 查看邀請(qǐng)

我的邀請(qǐng)列表

  • 擅長(zhǎng)該話題
  • 回答過(guò)該話題
  • 我關(guān)注的人
向幫助了您的網(wǎng)友說(shuō)句感謝的話吧!
付費(fèi)偷看金額在0.1-10元之間
<