程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> 系統崩潰後MySQL數據庫恢復手記

系統崩潰後MySQL數據庫恢復手記

編輯:MySQL綜合教程

隨著DedeCMS、PHPCMS、帝國、Discuz!、PHPWIND、WordPress等知名web管理系統的普及,Mysql數據庫的應用逐漸廣泛起來,關於Mysql產生的問題也越來越多,今天幫客之家小編恰巧在無淚之城的博客看到《系統崩潰後MySQL數據庫恢復手記》一文,特別轉載給大家一起分享,感謝作者的辛苦勞動。

原文如下:

創E的服務器在前段時間因為硬件問題徹底崩潰了,得到網絡中心的支持將服務器遷移到學校剛剛搭建起來的虛擬化平台上,系統和asp+access數據庫的網站因為保存在非系統盤所以在第一時間恢復,但是因為MySQL數據庫是安裝在系統裡面,所以數據就一直沒有空去弄它。今天花了一天時間,重裝了N次MySQL Server終於成功將數據庫恢復,但是權限問題尚未解決。先記下數據庫恢復過程,權限問題稍候再說。

一開始的做法是在原有系統中將原先保存Data的ibdata1覆蓋到新裝的MySQL Data目錄裡面,但是文件雖然變大,但是數據庫並沒有回來。參考了文章很多資料後,發現ibdata1只是保存了數據庫中是數據,但是數據庫的表結構是保存在另外的地方。

重新接上原來的硬盤,在C:\Documents and Settings\All Users\Application Data\MySQL\MySQL Server 5.1\data裡面終於找到了原來的數據庫結構和表結構文件,還是使用覆蓋數據庫文件的方式,先停用MySQL,再覆蓋,但是之後就再也啟動不了MySQL服務了。

然後嘗試重裝的時候將數據庫的保存目錄指定到拷貝出來的Date目錄,安裝後提示原來有數據文件,但是安裝最後的配置就在一直沒有成功,換了幾次MySQL的版本也不行。

最後采取安裝後選擇性覆蓋,將後期自己建立的表文件和ibdata1覆蓋後啟動成功,終於將數據庫文件恢復,但是權限部分沒有了。只能自己重建。比較麻煩···

最後介紹一下MySQL的備份與恢復

MySql的備份可用命令mysqldump ,使用方法很簡單,

Copy to ClipboardLiehuo.Net Codes引用的內容:[www.bkjia.com] mysqldump -u 用戶名 -p (密碼) -h 主機名 數據庫名 >路徑/備份名.bak;

同時也可以是用mysqldump到處數據結構(tablename.sql)和數據(tablename.txt)

Copy to ClipboardLiehuo.Net Codes引用的內容:[www.bkjia.com] mysqldump -u 用戶名 -p (密碼) -h 主機名 數據庫名 tablename1 tablename2 > back.sql

mysqldump -u 用戶名 -p (密碼) -h 主機名 數據庫名 --tab 路徑 --opt 數據庫名.

例如:

Copy to ClipboardLiehuo.Net Codes引用的內容:[www.bkjia.com] mysqldump -u pivot -p pivot news > c:\news.sql

那麼還原可以mysql命令:

Copy to ClipboardLiehuo.Net Codes引用的內容:[www.bkjia.com] mysql -u 用戶名 -p (密碼) -h 主機名 --one-database 還原數據庫名 < 路徑/備份名.bak,--one-database是指定要恢復的數據庫.

例如:

Copy to ClipboardLiehuo.Net Codes引用的內容:[www.bkjia.com] mysql -u pivot -p pivot news < c:\news.sql

(括號表示密碼不先輸入,在連接時在Enter password;若密碼為空可缺省-p參數)

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved