mysqldump常用于MySQL數(shù)據(jù)庫邏輯備份,導出數(shù)據(jù)庫表的結(jié)構(gòu)和內(nèi)容。
常用參數(shù)
-A, --all-databases
導出所有數(shù)據(jù)庫
--add-drop-database
在創(chuàng)建數(shù)據(jù)庫之前先DROP數(shù)據(jù)庫
--add-drop-table
在創(chuàng)建表之前先drop表,默認true
--add-locks
在insert語句前加鎖,默認true
--compact
導出更少的輸出信息(用于調(diào)試)。去掉注釋和頭尾等結(jié)構(gòu)
-c, --complete-insert
使用完整的insert語句(包含列名稱)。
-B, --databases
導出幾個數(shù)據(jù)庫。參數(shù)后面所有名字參量都被看作數(shù)據(jù)庫名。導出文件中會有'USE db_name;'
--default-character-set=name
設(shè)置默認字符集
-e, --extended-insert
使用具有多個VALUES列的INSERT語法。這樣使導出文件更小,并加速導入時的速度,默認true
**--ignore-table=name **
忽略指定的表不導出
--insert-ignore
在插入行時使用insert ignore
-l, --lock-tables
開始導出前,鎖定所有表
--dump-slave
將主庫的binlog位置和文件名追加到導出數(shù)據(jù)的文件中,該參數(shù)在在從服務(wù)器上執(zhí)行,相當于執(zhí)行show slave status.當設(shè)置為1時,將會以CHANGE MASTER命令輸出到數(shù)據(jù)文件;設(shè)置為2時,會在change前加上注釋。
--master-data[=#]
該選項將當前服務(wù)器的binlog的位置和文件名追加到輸出文件中(show master status)。如果為1,將會輸出CHANGE MASTER 命令;如果為2,輸出的CHANGE MASTER命令前添加注釋信息。
-n, --no-create-db
只導出數(shù)據(jù),不添加create database語句,默認false
-t, --no-create-info
只導出數(shù)據(jù),不添加create table語句,默認false
-d, --no-data
不導出任何數(shù)據(jù),只導出數(shù)據(jù)庫表結(jié)構(gòu)
-q, --quick
不緩沖查詢,直接導出到標準輸出。默認true
**--replace **
插入數(shù)據(jù)時用replace
--set-gtid-purged[=name]
是否添加SET@@GLOBAL.GTID_PURGED,默認auto
--single-transaction
使用一致性的快照來導出數(shù)據(jù),不鎖表,默認false
--tables
覆蓋--databases (-B)參數(shù),指定需要導出的表名
-w, --where=name
按照條件導出,只能導出單個表
-u -h -P -p
用戶名,主機名,端口,密碼
常用方法
1、導出所有庫
mysqldump -uroot -p123 --single-transaction --all-databases >all.sql
該命令會導出包括系統(tǒng)數(shù)據(jù)庫在內(nèi)的所有數(shù)據(jù)庫
2、導出單個庫
mysqldump -uroot -p123 --single-transaction test > test.sql
3、導出多個數(shù)據(jù)庫
mysqldump -uroot -p123 --single-transaction --databases db1 db2> db.sql
導出文件中會有'USE db1;USE db2'
4、導出單表
mysqldump -uroot -p123 --single-transaction test table_1 > table_1.sql
5、導出多表
mysqldump -uroot -p123 --single-transaction test --tables table_1 table_2> table.sql
6、只導表結(jié)構(gòu)
mysqldump -uroot -p123 --single-transaction test -d > test_structure.sql
7、只導出數(shù)據(jù)
mysqldump -uroot -p123 --no-create-info --single-transaction --skip-add-locks --compact -c --set-gtid-purged=OFF test t2 >t2.sql
8、按照where條件導出
mysqldump -uroot -p123 --single-transaction test table_1 -w "id<1000000" > table_1.sql