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