記一次MySQL數(shù)據(jù)庫恢復(附方案)
閱讀本文大概需要 2.8 分鐘。
來自:blog.csdn.net/qq_34886352/article/details/112469998
恢復步驟概要
備份frm、ibd文件 如果mysql版本發(fā)生變化,安裝回原本的mysql版本 創(chuàng)建和原本庫名一致新庫,字符集都要保持一樣 通過frm獲取到原先的表結構,通過的得到的表結構創(chuàng)建一個和原先結構一樣的空表。 使用“ ALTER TABLE DISCARD TABLESPACE;”命令卸載掉表空間將原先的ibd拷貝到mysql的倉庫下 添加用戶權限 “ chown . .ibd”,如果是操作和mysql的使用權限一致可以跳過通過“ ALTER TABLE IMPORT TABLESPACE;”命令恢復表空間完成
實際操作
1)備份文件
mkdir?/usr/local/backup
cp?*?/usr/local/backup
2)安裝原本版本的數(shù)據(jù)庫
3)創(chuàng)建和原本一致的庫
4)frm獲取到原先的表結構
#下載
curl?-s?get.dbsake.net?>?dbsake
#添加執(zhí)行權限
chmod?u+x?dbsake
#基礎使用
./dbsake?frmdump?[frm-file-path]
#將所有讀取結果輸入到文件中
./dbsake?frmdump?[frm-file-path]?>?<文件名>
例如:
./dbsake?frmdump?student.frm?teacher.frm?>?school.txt
5)卸載表空間
ALTER?TABLE? ?DISCARD?TABLESPACE;
例如:
ALTER?TABLE?student?DISCARD?TABLESPACE;
ALTER?TABLE?teacher?DISCARD?TABLESPACE;
6)拷貝原本的ibd,到新的庫中
show?variables?like?'datadir';
7)命令恢復表空間
ALTER?TABLE? ?IMPORT?TABLESPACE;
例如:
ALTER?TABLE?student?IMPORT?TABLESPACE;
ALTER?TABLE?teacher?IMPORT?TABLESPACE;
8)完成
推薦閱讀:
內(nèi)容包含Java基礎、JavaWeb、MySQL性能優(yōu)化、JVM、鎖、百萬并發(fā)、消息隊列、高性能緩存、反射、Spring全家桶原理、微服務、Zookeeper、數(shù)據(jù)結構、限流熔斷降級......等技術棧!
?戳閱讀原文領取!? ? ? ? ? ? ? ??? ??? ? ? ? ? ? ? ? ? ?朕已閱?
評論
圖片
表情

