寫在前面:
-----------------------------------------------------------------
有時(shí)候經(jīng)常要把數(shù)據(jù)庫(kù)轉(zhuǎn)來(lái)轉(zhuǎn)去,或者導(dǎo)入導(dǎo)出,以前記得命令,后來(lái)又忘記了,現(xiàn)在寫出來(lái)備忘!
------------------------------------------------------------------
注意:mysqldump比直接拷貝數(shù)據(jù)庫(kù)文件夾速度要慢
-
但,直接復(fù)制文件夾不能100%轉(zhuǎn)移到其它機(jī)子上用,我說(shuō)的不是windows下 :)
#mysqldump db_name >/path/name.sql
上面的命令意思是把一個(gè)庫(kù)導(dǎo)出到一個(gè)SQL文件. 當(dāng)然,你直接在有ROOT密碼的機(jī)子上執(zhí)行以上命令一定會(huì)報(bào)錯(cuò).所以,請(qǐng)用
#mysqldump db_name >/path/name.sql -uroot -p
這回會(huì)要求你輸入密碼,輸入正確,找找/path下是不是有name.sql文件了?
數(shù)據(jù)庫(kù)太大了,想壓縮一下?好,用這個(gè)命令就行
#mysqldump db_name |gzip >/path/name.gz -uroot -p
想備份全部的庫(kù)呢?
#mysqldump --all-databases >/path/name.sql -uroot -p
#mysqldump --all-databases |gzip >/path/name.gz -uroot -p (很明顯,這條命令是加壓縮的意思)
只想備份一個(gè)單獨(dú)或者幾個(gè)表?
有時(shí)候數(shù)據(jù)庫(kù)很大很大,整個(gè)庫(kù)備份就不好管理,那就單獨(dú)備份
#mysqldump db_name tab_name >/path/sqlname.sql -uroot -p
備份做好了.遇到問(wèn)題的時(shí)候.怎么用備份恢復(fù)數(shù)據(jù)?
再簡(jiǎn)單不過(guò)了,
mysql db_name < backup-file.sql -uroot -p
注意:如果你想恢復(fù)的數(shù)據(jù)庫(kù)是包含授權(quán)表的mysql數(shù)據(jù)庫(kù),你需要用--skip-grant-table選項(xiàng)運(yùn)行服務(wù)器。否則,它會(huì)抱怨不能找到授權(quán)表。在你已經(jīng)恢復(fù)表后,執(zhí)行mysqladmin flush-privileges告訴服務(wù)器裝載授權(quán)標(biāo)并使用它們
恢復(fù)單個(gè)表
恢復(fù)單個(gè)表較為復(fù)雜,如果你用一個(gè)由mysqldump生成的備份文件,并且它不包含你感興趣的表的數(shù)據(jù),你需要從相關(guān)行中提取它們并將它們用作mysql的輸入。這是容易的部分。難的部分是從只運(yùn)用于該表的更新日志中拉出片斷。你會(huì)發(fā)覺(jué)mysql_find_rows實(shí)用程序?qū)Υ撕苡袔椭,它從更新日志中提取多行查詢?
本文出自:億恩科技【www.riomediacenter.com】
服務(wù)器租用/服務(wù)器托管中國(guó)五強(qiáng)!虛擬主機(jī)域名注冊(cè)頂級(jí)提供商!15年品質(zhì)保障!--億恩科技[ENKJ.COM]
|