在日常維護(hù)工作當(dāng)中經(jīng)常會需要對數(shù)據(jù)進(jìn)行導(dǎo)出操作,而mysqldump是導(dǎo)出數(shù)據(jù)過程中使用非常頻繁的一個工具;它自帶的功能參數(shù)非常多,文章中會列舉出一些常用的操作,在文章末尾會將所有的參數(shù)詳細(xì)說明列出來。
語法:
默認(rèn)不帶參數(shù)的導(dǎo)出,導(dǎo)出文本內(nèi)容大概如下:創(chuàng)建數(shù)據(jù)庫判斷語句-刪除表-創(chuàng)建表-鎖表-禁用索引-插入數(shù)據(jù)-啟用索引-解鎖表。
Usage: mysqldump [OPTIONS] database [tables] OR mysqldump [OPTIONS] --databases [OPTIONS] DB1 [DB2 DB3...] OR mysqldump [OPTIONS] --all-databases [OPTIONS]
1.導(dǎo)出所有數(shù)據(jù)庫
該命令會導(dǎo)出包括系統(tǒng)數(shù)據(jù)庫在內(nèi)的所有數(shù)據(jù)庫
mysqldump -uroot -proot --all-databases >/tmp/all.sql 2.導(dǎo)出db1、db2兩個數(shù)據(jù)庫的所有數(shù)據(jù)
mysqldump -uroot -proot --databases db1 db2 >/tmp/user.sql
3.導(dǎo)出db1中的a1、a2表
注意導(dǎo)出指定表只能針對一個數(shù)據(jù)庫進(jìn)行導(dǎo)出,且導(dǎo)出的內(nèi)容中和導(dǎo)出數(shù)據(jù)庫也不一樣,導(dǎo)出指定表的導(dǎo)出文本中沒有創(chuàng)建數(shù)據(jù)庫的判斷語句,只有刪除表-創(chuàng)建表-導(dǎo)入數(shù)據(jù)
mysqldump -uroot -proot --databases db1 --tables a1 a2 >/tmp/db1.sql
4.條件導(dǎo)出,導(dǎo)出db1表a1中id=1的數(shù)據(jù)
如果多個表的條件相同可以一次性導(dǎo)出多個表
mysqldump -uroot -proot --no-create-info --databases db1 --tables a1 --where="id='a'" >/tmp/a1.sql 5.生成新的binlog文件,-F
有時候會希望導(dǎo)出數(shù)據(jù)之后生成一個新的binlog文件,只需要加上-F參數(shù)即可
mysqldump -uroot -proot --databases db1 -F >/tmp/db1.sql 6.只導(dǎo)出表結(jié)構(gòu)不導(dǎo)出數(shù)據(jù),--no-data
mysqldump -uroot -proot --no-data --databases db1 >/tmp/db1.sql 7.跨服務(wù)器導(dǎo)出導(dǎo)入數(shù)據(jù)
mysqldump --host=h2 -uroot -proot --databases db1 |mysql --host=h3 -uroot -proot db2 將h2服務(wù)器中的db1數(shù)據(jù)庫的所有數(shù)據(jù)導(dǎo)入到h3中的db2數(shù)據(jù)庫中,db2的數(shù)據(jù)庫必須存在否則會報錯
8.將主庫的binlog位置和文件名追加到導(dǎo)出數(shù)據(jù)的文件中,--dump-slave
注意:--dump-slave命令如果當(dāng)前服務(wù)器是從服務(wù)器那么使用該命令會執(zhí)行stop slave來獲取master binlog的文件和位置,等備份完后會自動執(zhí)行start slave啟動從服務(wù)器。但是如果是大的數(shù)據(jù)量備份會給從和主的延時變的更大,使用--dump-slave獲取到的只是當(dāng)前的從服務(wù)器的數(shù)據(jù)執(zhí)行到的主的binglog的位置是(relay_mater_log_file,exec_master_log_pos),而不是主服務(wù)器當(dāng)前的binlog執(zhí)行的位置,主要是取決于主從的數(shù)據(jù)延時。
該參數(shù)在在從服務(wù)器上執(zhí)行,相當(dāng)于執(zhí)行show slave status。當(dāng)設(shè)置為1時,將會以CHANGE MASTER命令輸出到數(shù)據(jù)文件;設(shè)置為2時,會在change前加上注釋。
該選項(xiàng)將會打開--lock-all-tables,除非--single-transaction被指定。 |
免責(zé)聲明:本站部分文章和圖片均來自用戶投稿和網(wǎng)絡(luò)收集,旨在傳播知識,文章和圖片版權(quán)歸原作者及原出處所有,僅供學(xué)習(xí)與參考,請勿用于商業(yè)用途,如果損害了您的權(quán)利,請聯(lián)系我們及時修正或刪除。謝謝!
始終以前瞻性的眼光聚焦站長、創(chuàng)業(yè)、互聯(lián)網(wǎng)等領(lǐng)域,為您提供最新最全的互聯(lián)網(wǎng)資訊,幫助站長轉(zhuǎn)型升級,為互聯(lián)網(wǎng)創(chuàng)業(yè)者提供更加優(yōu)質(zhì)的創(chuàng)業(yè)信息和品牌營銷服務(wù),與站長一起進(jìn)步!讓互聯(lián)網(wǎng)創(chuàng)業(yè)者不再孤獨(dú)!
掃一掃,關(guān)注站長網(wǎng)微信