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