隨筆-60  評論-35  文章-15  trackbacks-0
          使用MYSQL進行數(shù)據(jù)庫備份,有很正規(guī)的數(shù)據(jù)庫備份方法,同其他的數(shù)據(jù)庫服務器有相同的概念,但有沒有想過,MySQL會有更簡捷的使用文件目錄的備份方法,而且又快有好。   

            一、數(shù)據(jù)備份捷徑   

            因為這個方法沒有得到官方正式文檔的驗證,我們暫稱為試驗吧。   

            目的:備份hostA主機中一個mysql數(shù)據(jù)庫TestA,并恢復到到hostB機中  

            試驗環(huán)境:   

            操作系統(tǒng):WinNT4.0,Mysql3.22.34,phpMyAdmin 2.1.0   

            在hostA中安裝mysql數(shù)據(jù)庫并建立TestA數(shù)據(jù)庫  

            hostB機安裝mysql數(shù)據(jù)庫,沒有TestA數(shù)據(jù)庫  

            方法步驟:   

            啟動phpMyAdmin察看HostA和HostB中的數(shù)據(jù)庫列表,在HostB中沒有TestA數(shù)據(jù)庫   

            找到HostA中mysql的安裝目錄,并找到數(shù)據(jù)庫目錄data   

            在我的試驗環(huán)境中,這個目錄是   

            C:mysqldata   

            找到對應數(shù)據(jù)庫名稱的子目錄   

            C:mysqldataTestA   

            粘貼拷貝到HostB的Data目錄下,是HostA同HostB Mysql數(shù)據(jù)目錄下的文件相同。 

            刷新HostB的phpMyAdmin察看一下數(shù)據(jù)庫列表,我們看到TestA已經(jīng)出現(xiàn),并且作查詢修改等操作都正常,備份恢復恢復成功。

            試驗結(jié)論:Mysql的數(shù)據(jù)庫可以通過文件形式保存,備份,恢復只要將相應文件目錄恢復即可,無需使用其它工具備份。   

            二、正規(guī)的方法(官方建議):

            導出要用到MySQL的mysqldump工具,基本用法是:   

            mysqldump [OPTIONS] database [tables]  

            如果你不給定任何表,整個數(shù)據(jù)庫將被導出。  

            通過執(zhí)行mysqldump --help,你能得到你mysqldump的版本支持的選項表。   

            注意,如果你運行mysqldump沒有--quick或--opt選項,mysqldump將在導出結(jié)果前裝載整個結(jié)果集到內(nèi)存中,如果你正在導出一個大的數(shù)據(jù)庫,這將可能是一個問題。  

            mysqldump支持下列選項:  

            --add-locks   

            在每個表導出之前增加LOCK TABLES并且之后UNLOCK TABLE。(為了使得更快地插入到MySQL)。  

            --add-drop-table   

            在每個create語句之前增加一個drop table。  

            --allow-keywords   

            允許創(chuàng)建是關(guān)鍵詞的列名字。這由在列名前面加表名的方法做到。   

            -c, --complete-insert   

            使用完整的insert語句(用列名字)。   

            -C, --compress   

            如果客戶和服務器均支持壓縮,壓縮兩者間所有的信息。   

            --delayed   

            用INSERT DELAYED命令插入行。   

            -e, --extended-insert   

            使用全新多行INSERT語法。(給出更緊縮并且更快的插入語句)   

            -#, --debug[=option_string]   

            跟蹤程序的使用(為了調(diào)試)。   

            --help   

            顯示一條幫助消息并且退出。  

            --fields-terminated-by=...   

            --fields-enclosed-by=...   

            --fields-optionally-enclosed-by=...   

            --fields-escaped-by=...   

            --fields-terminated-by=...

          這些選擇與-T選擇一起使用,并且有相應的LOAD DATA INFILE子句相同的含義。   

            LOAD DATA INFILE語法。   

            -F, --flush-logs  

            在開始導出前,洗掉在MySQL服務器中的日志文件。   

            -f, --force,   

            即使我們在一個表導出期間得到一個SQL錯誤,繼續(xù)。   

            -h, --host=..   

            從命名的主機上的MySQL服務器導出數(shù)據(jù)。缺省主機是localhost。   

            -l, --lock-tables.   

            為開始導出鎖定所有表。  

            -t, --no-create-info   

            不寫入表創(chuàng)建信息(CREATE TABLE語句)   

            -d, --no-data   

            不寫入表的任何行信息。如果你只想得到一個表的結(jié)構(gòu)的導出,這是很有用的!   

            --opt   

            同--quick --add-drop-table --add-locks --extended-insert --lock-tables。   

            應該給你為讀入一個MySQL服務器的盡可能最快的導出。  

            -pyour_pass, --password[=your_pass]   

            與服務器連接時使用的口令。如果你不指定“=your_pass”部分,mysqldump需要來自終端的口令。   

            -P port_num, --port=port_num   

            與一臺主機連接時使用的TCP/IP端口號。(這用于連接到localhost以外的主機,因為它使用 Unix套接字。)   

            -q, --quick   

            不緩沖查詢,直接導出至stdout;使用mysql_use_result()做它。   

            -S /path/to/socket, --socket=/path/to/socket   

            與localhost連接時(它是缺省主機)使用的套接字文件。   

            -T, --tab=path-to-some-directory  

            對于每個給定的表,創(chuàng)建一個table_name.sql文件,它包含SQL CREATE 命令,和一個table_name.txt文件,它包含數(shù)據(jù)。注意:這只有在mysqldump運行在mysqld守護進程運行的同一臺機器上的時候才工作。.txt文件的格式根據(jù)--fields-xxx和-- lines--xxx選項來定。   

            -u user_name, --user=user_name   

            與服務器連接時,MySQL使用的用戶名。缺省值是你的Unix登錄名。   

            -O var=option, --set-variable var=option   

            設置一個變量的值。可能的變量被列在下面。   

            -v, --verbose   

            冗長模式。打印出程序所做的更多的信息。   

            -V, --version  

            打印版本信息并且退出。   

            -w, --where='where-condition'   

            只導出被選擇了的記錄;注意引號是強制的!   

            "--where=user='jimf'" "-wuserid>1" "-wuserid<1"   

            最常見的mysqldump使用可能制作整個數(shù)據(jù)庫的一個備份:   

            mysqldump --opt database > backup-file.sql   

            但是它對用來自于一個數(shù)據(jù)庫的信息充實另外一個MySQL數(shù)據(jù)庫也是有用的:   

            mysqldump --opt database   mysql --host=remote-host -C database   

            由于mysqldump導出的是完整的SQL語句,所以用mysql客戶程序很容易就能把數(shù)據(jù)導入了:   

            mysqladmin create target_db_name   

            mysql target_db_name < backup-file.sql
          posted on 2007-01-24 12:54 Q系列類、方法、變量…… 閱讀(229) 評論(0)  編輯  收藏

          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導航:
           
          主站蜘蛛池模板: 朔州市| 钟祥市| 错那县| 周至县| 普洱| 阳东县| 大渡口区| 霍州市| 扎囊县| 友谊县| 和田县| 肇州县| 凌源市| 济阳县| 汨罗市| 阿拉善左旗| 天水市| 明星| 大城县| 叶城县| 南木林县| 东安县| 上饶县| 奇台县| 桐柏县| 缙云县| 崇信县| 蒲江县| 桐梓县| 上饶市| 汉中市| 商丘市| 隆林| 南城县| 黄平县| 和静县| 青州市| 湘潭县| 安康市| 岗巴县| 永宁县|