MySQL數據庫(kù)備份(fèn)的基(jī)礎知識大(dà)全
平(píng)時(shí)我們在使用MySQL數(shù)據庫的時候經常會因為操作失誤造成數據丟失,MySQL數據庫備(bèi)份(fèn)可以(yǐ)幫助我們避免由於各種原因造成的(de)數據丟失或著數據庫(kù)的其(qí)他問(wèn)題。
一、數據備份(fèn)捷徑
因為這個方法沒(méi)有得到官(guān)方正式文檔的驗(yàn)證,我們(men)暫稱為試驗吧(ba)。
目(mù)的:備份hostA主機(jī)中一個(gè)MySQL數據庫備份TestA,並恢(huī)複到到hostB機(jī)中
試(shì)驗環境(jìng):
操作係統:WinNT4.0,Mysql3.22.34,phpMyAdmin 2.1.0
在hostA中安裝MySQL數據庫備(bèi)份並(bìng)建(jiàn)立TestA數據庫
hostB機安裝MySQL數(shù)據庫(kù)備份,沒有TestA數據庫(kù)
方法步驟:
啟動phpMyAdmin察看HostA和HostB中的數據庫(kù)列表,在(zài)HostB中(zhōng)沒有TestA數據庫
找到HostA中MySQL數據庫備份的安裝目錄,並找到數據庫目錄data
在我的試(shì)驗環(huán)境中,這個目錄是C:\mysql\data
找(zhǎo)到對應數據(jù)庫名稱的子(zǐ)目錄C:\mysql\data\TestA
粘貼拷貝到HostB的Data目錄(lù)下(xià),是(shì)HostA同HostB MySQL數據庫備(bèi)份數據目錄下的(de)文件相同
刷新(xīn)HostB的phpMyAdmin察看一下(xià)數(shù)據庫列表,我們(men)看到TestA已經出現,並(bìng)且作查詢修改等操(cāo)作(zuò)都(dōu)正常,備份恢複(fù)恢複(fù)成(chéng)功
試驗結論:MySQL的數據庫可以通過文件形式保存(cún),備份,恢複隻要(yào)將相(xiàng)應文件目錄恢複即(jí)可,無需使用(yòng)其它工具備份。
二、正規的方法(官方建議):
導出要用到MySQL數(shù)據庫備份的mysqldump工具,基本(běn)用(yòng)法是:
mysqldump [OPTIONS] database [tables] |
如果你不給定任何(hé)表,整個數據庫將(jiāng)被導(dǎo)出。
通過執行mysqldump --help,你能得到(dào)你mysqldump的版本支持的選項(xiàng)表。
注意(yì),如(rú)果你運行mysqldump沒有--quick或--opt選項,mysqldump將(jiāng)在導出結果前裝載整(zhěng)個結果集到內存(cún)中,如果你正在導出一個大的(de)數據庫,這將(jiāng)可能是一(yī)個問題。
mysqldump支持下列(liè)選項(xiàng):
--add-locks |
在每個表導出之(zhī)前(qián)增加LOCK TABLES並(bìng)且之後UNLOCK TABLE。(為了使(shǐ)得更快地插入到MySQL數(shù)據庫備份)。
--add-drop-table |
在每個create語句之前增加一(yī)個drop table。
--allow-keywords |
允許創(chuàng)建是(shì)關鍵(jiàn)詞(cí)的列名(míng)字。這由在列名(míng)前麵加表名(míng)的方法做到(dào)。
-c, --complete-insert |
使用完整的(de)insert語句(用列名(míng)字)。
-C, --compress |
如(rú)果客戶(hù)和服(fú)務器均支持壓縮,壓縮兩者間所有的(de)信息。
--delayed |
用(yòng)INSERT DELAYED命令(lìng)插(chā)入行。
-e, --extended-insert |
使用全新多行INSERT語法。(給出更緊(jǐn)縮並且更快的插入(rù)語句)
-#, --debug[=option_string] |
跟蹤程序的(de)使用(為(wéi)了調試)。
--help |
顯(xiǎn)示一條幫(bāng)助消息並且退(tuì)出。
--fields-terminated-by=... --fields-enclosed-by=... --fields-optionally-enclosed-by=... --fields-escaped-by=... --fields-terminated-by=... |
這些選擇與-T選(xuǎn)擇一起(qǐ)使用,並且有相應的LOAD DATA INFILE子句(jù)相同的含義。
LOAD DATA INFILE語法。
-F, --flush-logs |
在開(kāi)始導出前,洗掉在MySQL數據庫備(bèi)份(fèn)服務器中的日誌文件。
-f, --force, |
即使(shǐ)我們在一(yī)個表(biǎo)導出(chū)期間得到一個SQ
關鍵詞:MySQL數據庫(kù)備(bèi)份
閱(yuè)讀本文後(hòu)您有什麽感想? 已(yǐ)有 人給出評價!
- 1
- 1
- 1
- 1
- 1
- 1