• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            隨筆 - 298  文章 - 377  trackbacks - 0
            <2013年4月>
            31123456
            78910111213
            14151617181920
            21222324252627
            2829301234
            567891011

            常用鏈接

            留言簿(34)

            隨筆分類

            隨筆檔案

            文章檔案

            相冊

            收藏夾

            搜索

            •  

            最新評論

            閱讀排行榜

            評論排行榜

            還原一個數據庫:mysql -h localhost -u root -p123456 www<c:/www.sql

            備份一個數據庫:mysqldump -h localhost -u root -p123456 www > d:/www2008-2-26.sql

             

             

            //以下是在程序中進行測試

            //$command = "mysqldump --opt -h $dbhost -u $dbuser -p $dbpass $dbname | gzip > $backupFile";
            $command="mysqldump -h localhost -u root -p123456 guestbook > guestbook2-29.sql";
            system($command);
            echo "success";

            ************************************************

            備份MySQL數據庫的命令

            mysqldump -hhostname -uusername -ppassword databasename > backupfile.sql

            備份MySQL數據庫為帶刪除表的格式
            備份MySQL數據庫為帶刪除表的格式,能夠讓該備份覆蓋已有數據庫而不需要手動刪除原有數據庫。

            mysqldump -–add-drop-table -uusername -ppassword databasename > backupfile.sql

            直接將MySQL數據庫壓縮備份

            mysqldump -hhostname -uusername -ppassword databasename | gzip > backupfile.sql.gz

            備份MySQL數據庫某個(些)表

            mysqldump -hhostname -uusername -ppassword databasename specific_table1 specific_table2 > backupfile.sql

            同時備份多個MySQL數據庫

            mysqldump -hhostname -uusername -ppassword –databases databasename1 databasename2 databasename3 > multibackupfile.sql

            僅僅備份數據庫結構

            mysqldump –no-data –databases databasename1 databasename2 databasename3 > structurebackupfile.sql

            備份服務器上所有數據庫

            mysqldump –all-databases > allbackupfile.sql

            還原MySQL數據庫的命令

            mysql -hhostname -uusername -ppassword databasename < backupfile.sql

            還原壓縮的MySQL數據庫

            gunzip < backupfile.sql.gz | mysql -uusername -ppassword databasename

            將數據庫轉移到新服務器

            mysqldump -uusername -ppassword databasename | mysql –host=*.*.*.* -C databasename
             
             幾個常用用例:

            1.導出整個數據庫
            mysqldump -u 用戶名 -p 數據庫名 > 導出的文件名
            mysqldump -u root -p dataname >dataname.sql
            這個時候會提示要你輸入root用戶名的密碼,輸入密碼后dataname數據庫就成功備份在mysql/bin/目錄中.

            2.導出一個表
            mysqldump -u 用戶名 -p 數據庫名 表名> 導出的文件名
            mysqldump -u root -p dataname users> dataname_users.sql

            3.導出一個數據庫結構
            mysqldump -u wcnc -p -d –add-drop-table smgp_apps_wcnc >d:/wcnc_db.sql
            -d 沒有數據 –add-drop-table 在每個create語句之前增加一個drop table

            4.導入數據庫
            常用source 命令
            進入mysql數據庫控制臺,
            如mysql -u root -p

            mysql>use 數據庫

            然后使用source命令,后面參數為腳本文件(如這里用到的.sql)
            mysql>source d:/wcnc_db.sql

            mysqldump支持下列選項:
            –add-locks
            在每個表導出之前增加LOCK TABLES并且之后UNLOCK TABLE。(為了使得更快地插入到MySQL)。

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

            –allow-keywords
            允許創建是關鍵詞的列名字。這由表名前綴于每個列名做到。

            -c, –complete-insert
            使用完整的insert語句(用列名字)。

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

            –delayed
            用INSERT DELAYED命令插入行。

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

            -#, –debug[=option_string]
            跟蹤程序的使用(為了調試)。

            –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錯誤,繼續。

            -h, –host=..
            從命名的主機上的MySQL服務器導出數據。缺省主機是localhost。

            -l, –lock-tables.
            為開始導出鎖定所有表。

            -t, –no-create-info
            不寫入表創建信息(CREATE TABLE語句)

            -d, –no-data
            不寫入表的任何行信息。如果你只想得到一個表的結構的導出,這是很有用的!

            –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
            對于每個給定的表,創建一個table_name.sql文件,它包含SQL CREATE 命令,和一個table_name.txt文件,它包含數據。注意:這只有在mysqldump運行在mysqld守護進程運行的同一臺機器上的時候才工 作。.txt文件的格式根據–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使用可能制作整個數據庫的一個備份:
            mysqldump –opt database > backup-file.sql

            但是它對用來自于一個數據庫的信息充實另外一個MySQL數據庫也是有用的:
            mysqldump –opt database | mysql –host=remote-host -C database
            由于mysqldump導出的是完整的SQL語句,所以用mysql客戶程序很容易就能把數據導入了:

            shell> mysqladmin create target_db_name
            shell> mysql target_db_name < backup-file.sql
            就是
            shell> mysql 庫名 < 文件名




            mysqldump--導出工具
             

            mysqldump備份還原和mysqldump導入導出語句大全詳解

            mysqldump備份

            mysqldump -u用戶名 -p密碼 -h主機 數據庫 a -w "sql條件" --lock-all-tables > 路徑

            案例:

            mysqldump -uroot -p1234 -hlocalhost db1 a -w "id in (select id from b)" --lock-all-tables > c:\aa.txt

            mysqldump還原

            mysqldump -u用戶名 -p密碼 -h主機 數據庫 < 路徑

            案例:

            mysql -uroot -p1234 db1 < c:\aa.txt

            mysqldump按條件導出

            mysqldump -u用戶名 -p密碼 -h主機 數據庫  a --where "條件語句" --no-建表> 路徑

            mysqldump -uroot -p1234 dbname a --where "tag='88'" --no-create-info> c:\a.sql

            mysqldump按導入

            mysqldump -u用戶名 -p密碼 -h主機 數據庫 < 路徑

            案例:

            mysql -uroot -p1234 db1 < c:\a.txt

            mysqldump導出表

            mysqldump -u用戶名 -p密碼 -h主機 數據庫 表

            案例:

            mysqldump -uroot -p sqlhk9 a --no-data

            講一下 mysqldump 的一些主要參數

            --compatible=name
            它告訴 mysqldump,導出的數據將和哪種數據庫或哪個舊版本的 MySQL 服務器相兼容。值可以為 ansi、mysql323、mysql40、postgresql、oracle、mssql、db2、maxdb、no_key_options、 no_tables_options、no_field_options 等,要使用幾個值,用逗號將它們隔開。當然了,它并不保證能完全兼容,而是盡量兼容。
            --complete-insert,-c
            導出的數據采用包含字段名的完整 INSERT 方式,也就是把所有的值都寫在一行。這么做能提高插入效率,但是可能會受到 max_allowed_packet 參數的影響而導致插入失敗。因此,需要謹慎使用該參數,至少我不推薦。
            --default-character-set=charset
            指定導出數據時采用何種字符集,如果數據表不是采用默認的 latin1 字符集的話,那么導出時必須指定該選項,否則再次導入數據后將產生亂碼問題。
            --disable-keys
            告訴 mysqldump 在 INSERT 語句的開頭和結尾增加 /*!40000 ALTER TABLE table DISABLE KEYS */; 和 /*!40000 ALTER TABLE table ENABLE KEYS */; 語句,這能大大提高插入語句的速度,因為它是在插入完所有數據后才重建索引的。該選項只適合 MyISAM 表。
            --extended-insert = true|false
            默認情況下,mysqldump 開啟 --complete-insert 模式,因此不想用它的的話,就使用本選項,設定它的值為 false 即可。
            --hex-blob
            使用十六進制格式導出二進制字符串字段。如果有二進制數據就必須使用本選項。影響到的字段類型有 BINARY、VARBINARY、BLOB。
            --lock-all-tables,-x
            在開始導出之前,提交請求鎖定所有數據庫中的所有表,以保證數據的一致性。這是一個全局讀鎖,并且自動關閉 --single-transaction 和 --lock-tables 選項。
            --lock-tables
            它和 --lock-all-tables 類似,不過是鎖定當前導出的數據表,而不是一下子鎖定全部庫下的表。本選項只適用于 MyISAM 表,如果是 Innodb 表可以用 --single-transaction 選項。
            --no-create-info,-t
            只導出數據,而不添加 CREATE TABLE 語句。
            --no-data,-d
            不導出任何數據,只導出數據庫表結構。
            --opt
            這只是一個快捷選項,等同于同時添加 --add-drop-tables --add-locking --create-option --disable-keys --extended-insert --lock-tables --quick --set-charset 選項。本選項能讓 mysqldump 很快的導出數據,并且導出的數據能很快導回。該選項默認開啟,但可以用 --skip-opt 禁用。注意,如果運行 mysqldump 沒有指定 --quick 或 --opt 選項,則會將整個結果集放在內存中。如果導出大數據庫的話可能會出現問題。
            --quick,-q
            該選項在導出大表時很有用,它強制 mysqldump 從服務器查詢取得記錄直接輸出而不是取得所有記錄后將它們緩存到內存中。
            --routines,-R
            導出存儲過程以及自定義函數。
            --single-transaction
            該選項在導出數據之前提交一個 BEGIN SQL語句,BEGIN 不會阻塞任何應用程序且能保證導出時數據庫的一致性狀態。它只適用于事務表,例如 InnoDB 和 BDB。
            本選項和 --lock-tables 選項是互斥的,因為 LOCK TABLES 會使任何掛起的事務隱含提交。
            要想導出大表的話,應結合使用 --quick 選項。
            --triggers
            同時導出觸發器。該選項默認啟用,用 --skip-triggers 禁用它。
            其他參數詳情請參考手冊,我通常使用以下 SQL 來備份 MyISAM 表:
            /usr/local/mysql/bin/mysqldump -uyejr -pyejr "
            --default-character-set=utf8 --opt --extended-insert=false "
            --triggers -R --hex-blob -x db_name > db_name.sql
            使用以下 SQL 來備份 Innodb 表:
            /usr/local/mysql/bin/mysqldump -uyejr -pyejr "
            --default-character-set=utf8 --opt --extended-insert=false "
            --triggers -R --hex-blob --single-transaction db_name > db_name.sql
            另外,如果想要實現在線備份,還可以使用 --master-data 參數來實現,如下:
            /usr/local/mysql/bin/mysqldump -uyejr -pyejr "
            --default-character-set=utf8 --opt --master-data=1 "
            --single-transaction --flush-logs db_name > db_name.sql
            它只是在一開始的瞬間請求鎖表,然后就刷新binlog了,而后在導出的文件中加入CHANGE MASTER 語句來指定當前備份的binlog位置,如果要把這個文件恢復到slave里去,就可以采用這種方法來做。

            1.2 還原
            用 mysqldump 備份出來的文件是一個可以直接倒入的 SQL 腳本,有兩種方法可以將數據導入。
            直接用 mysql 客戶端
            例如:
            /usr/local/mysql/bin/mysql -uyejr -pyejr db_name < db_name.sql
            用 SOURCE 語法 (實驗不成功!!!)
            其實這不是標準的 SQL 語法,而是 mysql 客戶端提供的功能,例如:
            SOURCE /tmp/db_name.sql;
            這里需要指定文件的絕對路徑,并且必須是 mysqld 運行用戶(例如 nobody)有權限讀取的文件。


            #導出某個數據庫--結構+數據
            shell>mysqldump -h192.168.161.124 -uroot -pxxxxxx --opt db_name |gzip -9 > /db_bakup/db_name.gz

            #導出某個數據庫的表--結構+數據+函數+存儲過程
            shell>mysqldump -h192.168.161.124 -uroot -pxxxxxx --opt -R db_name |gzip -9 > /db_backup/db_name.gz

            #導出多個數據庫
            shell>mysqldump -h192.168.161.124 -uroot -pxxxxxx --opt --databases db_name1 db_name2 db_name3 |gzip -9 > /db_backup/mul_db.gz

            #導出所有的數據庫
            shell>mysqldump -h192.168.161.124 -uroot -pxxxxxx --opt --all-databases |gzip -9 > /db_bak/all_db.gz

            #導出某個數據庫的結構
            shell>mysqldump -h192.168.161.124 -uroot -pxxxxxx --opt --no-data db_name|gzip -9 > /db_bak/db_name.strcut.gz

            #導出某個數據庫的數據
            shell>mysqldump -h192.168.161.124 -uroot -pxxxxxx --opt --no-create-info db_name|gzip -9 > /db_bak/db_naem.data.gz

            #導出某個數據庫的某張表
            shell>mysqldump -h192.168.161.124 -uroot -pxxxxxx --opt db_name tbl_name |gzip -9 > /db_bak/db_name.tal_name.gz

            # 導出某個數據庫的某張表的結構
            shell>mysqldump -h192.168.161.124 -uroot -pxxxxxx --opt --no-data db_name tal_name | gzip -9 > /db_bak/db_name.tal_name.struct.gz

            #導出某個數據庫的某張表的數據
            shell>mysqldump -h192.168.161.124 -uroot -pxxxxxx --opt --no-create-info db_name tbl_name | gzip -9 > /db_bak/db_name.tbl_name.data.gz

            ##--opt==--add-drop-table + --add-locks + --create-options + --disables-keys + --extended-insert + --lock-tables + --quick + --set+charset
            ##默認使用--opt,--skip-opt禁用--opt參數
            posted on 2014-08-07 00:52 聶文龍 閱讀(9807) 評論(0)  編輯 收藏 引用 所屬分類: LinuxDatabase
            精品久久久久中文字| 日本精品久久久久中文字幕8| 一级a性色生活片久久无少妇一级婬片免费放| 国产成人久久久精品二区三区| 亚洲人成无码久久电影网站| av色综合久久天堂av色综合在| 久久99毛片免费观看不卡| 国产一区二区精品久久凹凸| 久久久久se色偷偷亚洲精品av | 日批日出水久久亚洲精品tv| 久久人人爽人人爽人人片AV高清| 777米奇久久最新地址| 国产免费久久精品99re丫y| 亚洲国产二区三区久久| 亚洲国产欧美国产综合久久| 久久久久18| 国产精品久久久久久久久鸭| 97精品伊人久久久大香线蕉| 无夜精品久久久久久| 精品国产青草久久久久福利| 精品免费久久久久久久| 日韩欧美亚洲综合久久影院Ds| 久久免费美女视频| 99久久99久久| 国产精品久久自在自线观看| 久久中文骚妇内射| 囯产精品久久久久久久久蜜桃| 一本久久综合亚洲鲁鲁五月天亚洲欧美一区二区 | 久久亚洲AV成人无码软件| 久久综合成人网| 国产精品免费久久| 一级做a爰片久久毛片16| 久久久精品人妻一区二区三区蜜桃| 香蕉99久久国产综合精品宅男自 | 久久影院久久香蕉国产线看观看| 国产精品久久影院| 亚洲一区二区三区日本久久九| 日本福利片国产午夜久久| 99久久伊人精品综合观看| 国产日韩久久久精品影院首页| 很黄很污的网站久久mimi色|