時(shí)間:2015/6/28來(lái)源:IT貓撲網(wǎng)作者:網(wǎng)管聯(lián)盟我要評(píng)論(0)
平時(shí)我們?cè)谑褂?a href="http://ygkjgt7.cn/key/mysql/" target="_blank">mysql數(shù)據(jù)庫(kù)的時(shí)候經(jīng)常會(huì)因?yàn)椴僮魇д`造成數(shù)據(jù)丟失,MySQL數(shù)據(jù)庫(kù)備份可以幫助我們避免由于各種原因造成的數(shù)據(jù)丟失或著數(shù)據(jù)庫(kù)的其他問題。
一、數(shù)據(jù)備份捷徑
因?yàn)檫@個(gè)方法沒有得到官方正式文檔的驗(yàn)證,我們暫稱為試驗(yàn)吧。
目的:備份hostA主機(jī)中一個(gè)MySQL數(shù)據(jù)庫(kù)備份TestA,并恢復(fù)到到hostB機(jī)中
試驗(yàn)環(huán)境:
操作系統(tǒng):WinNT4.0,Mysql3.22.34,phpMyAdmin 2.1.0
在hostA中安裝MySQL數(shù)據(jù)庫(kù)備份并建立TestA數(shù)據(jù)庫(kù)
hostB機(jī)安裝MySQL數(shù)據(jù)庫(kù)備份,沒有TestA數(shù)據(jù)庫(kù)
方法步驟:
啟動(dòng)phpMyAdmin察看HostA和HostB中的數(shù)據(jù)庫(kù)列表,在HostB中沒有TestA數(shù)據(jù)庫(kù)
找到HostA中MySQL數(shù)據(jù)庫(kù)備份的安裝目錄,并找到數(shù)據(jù)庫(kù)目錄data
在我的試驗(yàn)環(huán)境中,這個(gè)目錄是C:\mysql\data
找到對(duì)應(yīng)數(shù)據(jù)庫(kù)名稱的子目錄C:\mysql\data\TestA
粘貼拷貝到HostB的Data目錄下,是HostA同HostB MySQL數(shù)據(jù)庫(kù)備份數(shù)據(jù)目錄下的文件相同
刷新HostB的phpMyAdmin察看一下數(shù)據(jù)庫(kù)列表,我們看到TestA已經(jīng)出現(xiàn),并且作查詢修改等操作都正常,備份恢復(fù)恢復(fù)成功
試驗(yàn)結(jié)論:MySQL的數(shù)據(jù)庫(kù)可以通過文件形式保存,備份,恢復(fù)只要將相應(yīng)文件目錄恢復(fù)即可,無(wú)需使用其它工具備份。
二、正規(guī)的方法(官方建議):
導(dǎo)出要用到MySQL數(shù)據(jù)庫(kù)備份的mysqldump工具,基本用法是:
mysqldump [OPTIONS] database [tables] |
如果你不給定任何表,整個(gè)數(shù)據(jù)庫(kù)將被導(dǎo)出。
通過執(zhí)行mysqldump --help,你能得到你mysqldump的版本支持的選項(xiàng)表。
注意,如果你運(yùn)行mysqldump沒有--quick或--opt選項(xiàng),mysqldump將在導(dǎo)出結(jié)果前裝載整個(gè)結(jié)果集到內(nèi)存中,如果你正在導(dǎo)出一個(gè)大的數(shù)據(jù)庫(kù),這將可能是一個(gè)問題。
mysqldump支持下列選項(xiàng):
--add-locks |
在每個(gè)表導(dǎo)出之前增加LOCK TABLES并且之后UNLOCK TABLE。(為了使得更快地插入到MySQL數(shù)據(jù)庫(kù)備份)。
--add-drop-table |
在每個(gè)create語(yǔ)句之前增加一個(gè)drop table。
--allow-keywords |
允許創(chuàng)建是關(guān)鍵詞的列名字。這由在列名前面加表名的方法做到。
-c, --complete-insert |
使用完整的insert語(yǔ)句(用列名字)。
-C, --compress |
如果客戶和服務(wù)器均支持壓縮,壓縮兩者間所有的信息。
--delayed |
用INSERT DELAYED命令插入行。
-e, --extended-insert |
使用全新多行INSERT語(yǔ)法。(給出更緊縮并且更快的插入語(yǔ)句)
-#, --debug[=option_string] |
跟蹤程序的使用(為了調(diào)試)。
--help |
#p#副標(biāo)題#e#
顯示一條幫助消息并且退出。
--fields-terminated-by=... --fields-enclosed-by=... --fields-optionally-enclosed-by=... --fields-escaped-by=... --fields-terminated-by=... |
這些選擇與-T選擇一起使用,并且有相應(yīng)的LOAD DATA INFILE子句相同的含義。
LOAD DATA INFILE語(yǔ)法。
-F, --flush-logs |
在開始導(dǎo)出前,洗掉在MySQL數(shù)據(jù)庫(kù)備份服務(wù)器中的日志文件。
-f, --force, |
即使我們?cè)谝粋(gè)表導(dǎo)出期間得到一個(gè)SQL錯(cuò)誤,繼續(xù)。