3種形式
mysqldump [OPTIONS] database [tables]
mysqldump [OPTIONS] -B | --databases [OPTIONS] DB1 [DB2 DB3...]
mysqldump [OPTIONS] -A | --all-databases [OPTIONS]mysql
mysqldump [OPTIONS] -B | --databases [OPTIONS] DB1 --tables tb1 tb2 或
mysqldump [OPTIONS] [OPTIONS] DB1 tb1 tb2
注意:
導出指定表只能針對一個數據庫進行導出,且導出的內容中和導出數據庫也不同,
導出指定表的導出文本中沒有建立數據庫的判斷語句,只有刪除表-建立表-向表中插入數據,所以恢復時,必須指定數據庫sql
條件導出:僅針對表
導出db1表a1中id=1的數據
若是多個表的條件相同能夠一次性導出多個表數據庫
字段是整形
mysqldump -uroot -proot --databases db1 --tables a1 --where='id=1' > /tmp/a1.sqlwindows
按照下面的給定的文件順序,讀取默認選項:
/etc/my.cnf
/etc/mysql/my.cnf
/application/mysql-5.6.4/etc/my.cnf
~/.my.cnf 緩存
The following groups are read: mysqldump client
下面幾個選項若是使用必須做爲第一個參數給出:
--print-defaults 打印該程序在配置文件中的參數列表
eg. mysqldump --print-defaults 服務器
--no-defaults 除登陸文件外(login file),不從任何選項文件中讀取默認選項
--defaults-file=# 僅從給定的選項文件#中讀取默認選項
--defaults-extra-file=# 從全局配置文件(global files)讀取後,在從該選項指定的配置文件中讀取
--defaults-group-suffix=# Also read groups with concat(group, suffix)
--login-path=# 從登陸文件login file中讀取該路徑pathoracle
-A, --all-databases 備份全部數據庫(備份文件中含有create table 以及 use DB_Name語句),所以恢復時不須要指定數據庫
-Y, --all-tablespaces 備份全部表空間
-y, --no-tablespaces 不備份任何表空間信息
--add-drop-database 在每一條create DATABASE語句以前,添加一條DROP DATABASE語句
--add-drop-table 在每一條create table語句以前,添加一條DROP TABLE語句(默認開啓,使用--skip-add-drop-table禁用)
--add-drop-trigger 在每一條create trigger語句以前添加一條DROP TRIGGER語句
--add-locks 在INSERT語句周圍添加鎖(默認開啓,使用--skip-add-locks禁用)
--allow-keywords 容許建立做爲關鍵字的列名
--apply-slave-statements 在'CHANGE MASTER'和'START SLAVE'以前添加'STOP SLAVE'到轉儲底部。
--bind-address=name 綁定到IP地址
--character-sets-dir=name 字符串設定文件的目錄
-i, --comments 導出額外的信息(默認開啓,使用--skip-comments選項禁用)
--compatible=name 將轉儲更改成與給定模式兼容。默認狀況下,表格以針對MySQL優化的格式轉儲。
合法模式是:ansi,mysql323,mysql40,postgresql,oracle,mssql,db2,maxdb,
no_key_options,no_table_options,no_field_options。可使用逗號分隔的幾種模式。
注意:須要MySQL服務器版本4.1.0或更高版本。早期服務器版本會忽略此選項
--compact 輸出更少的信息(緊湊信息).
禁用語句註釋和頁眉/頁腳結構語句等。至關於啓用了以下幾個選項
啓用選項--skip-add-drop-table --skip-add-locks --skip-comments --skip-disable-keys --skip-set-charset。
-c, --complete-insert 使用完整的插入語句
-C, --compress 在Server/Client協議中使用壓縮,即若是是遠程備份,使用壓縮,這種壓縮不是文件的壓縮,而是通訊的壓縮
-a, --create-options 包含全部的Mysql指定的建立create選項(默認開啓,使用--skip-create-options選項禁用)
-B, --databases 指定要備份的多個數據庫。注意使用上的差別;
在這種狀況下,若沒有給出表名,全部名稱參數都被視爲數據庫名稱。
(備份文件中含有create table 以及 use DB_Name語句)所以恢復時不須要指定數據庫
--debug-check 檢查內存並在退出時打開文件使用狀況。
--debug-info 退出時打印一些調試信息
--default-character-set=name 設置默認的字符集
--delayed-insert 使用INSERT DELAYED語句插入行。
--delete-master-logs 在Master複製服務器上,完成轉儲操做後刪除二進制日誌。該選項自動啓用--master-data
-K, --disable-keys 對於每一個表,用/*!40000 ALTER TABLE tbl_name DISABLE KEYS */;
和/*!40000 ALTER TABLE tbl_name ENABLE KEYS */;
語句引用INSERT語句。這樣能夠更快地裝載轉儲文件,由於在插入全部行後建立索引。
該選項只適合MyISAM表(默認開啓,使用--skip-disable-keys選項禁用)
--dump-slave[=#] 這會致使master主服務器的二進制日誌位置和文件名被附加到轉儲數據輸出。在從庫上備份時可以使用
若是當前服務器是從服務器那麼使用該命令會執行stop slave來獲取master binlog的文件和位置,
等備份完後會自動執行start slave啓動從服務器。
可是若是是大的數據量備份會給從和主的延時變的更大,
使用--dump-slave獲取到的只是當前的從服務器的數據執行到的主的binglog的位置是
(relay_mater_log_file,exec_master_log_pos),而不是主服務器當前的binlog執行的位置,
主要是取決於主從的數據延時。app
該參數在在從服務器上執行,至關於執行show slave status。
當設置爲1時,將會以CHANGE MASTER命令輸出到數據文件;
設置爲2時,會在change前加上註釋。
除非指定了--single-transaction選項,
不然此選項將打開--lock-all-tables(在這種狀況下,全局讀鎖僅在轉儲開始時花費很短的時間 )。
在全部狀況下,對日誌的任何操做都將在dump.Option的確切時刻發生.該選項將自動關閉--lock-tables。
-E, --events 備份事件
-e, --extended-insert 使用多行INSERT插入語法(包括多個VALUES值列表)默認啓用,使用--skip-extended-insert選項禁用 socket
--fields-terminated-by=name
--fields-enclosed-by=name
--fields-optionally-enclosed-by=name
--fields-escaped-by=name
這些選項結合-T選項使用,與LOAD DATA INFILE的相應子句有相同的含義
-F, --flush-logs 開始轉儲前刷新MySQL服務器日誌文件。即導出數據以後生成一個新的binlog文件
若是您一次轉儲多個數據庫(使用選項-B | --databases =或-A|--all-databases),則將爲每一個轉儲的數據庫刷新日誌。
例外狀況是使用--lock-all-tables或--master-data:
在這種狀況下,日誌將只刷新一次,對應於全部表被鎖定的時刻。
所以,若是您但願轉儲和日誌刷新在同一時刻發生,
則應同時使用--lock-all-tables或--master-data選項
--flush-privileges 轉儲mysql數據庫後發出FLUSH PRIVILEGES語句。
每當轉儲包含mysql數據庫和任何其餘依賴於mysql數據庫中的數據的數據庫進行正確恢復時,都應該使用此選項
-f, --force 若是獲得SQL錯誤,繼續執行
-?, --help 顯示該幫助信息並退出
--hex-blob 以十六進制格式備份二進制字符換(BINARY, VARBINARY, BLOB)
-h, --host=name 指定要鏈接的主機,一般在備份遠程mysql服務器上的數據時使用
示例:
mysqldump --host=h1 -uroot -proot -C --databases db1 | mysql --host=h2 -uroot -proot db2
將h1服務器中的db1數據庫的全部數據導入到h2中的db2數據庫中,db2的數據庫必須存在不然會報錯
--ignore-table=name 不備份這裏指定的表,要指定多個要忽略的表,請屢次使用該指令,每一個表使用一次。
必須使用數據庫和表名指定每一個表. 例如 --ignore-table=database.table.
--include-master-host-port 在--dump-slave的輸出中添加'CHANGE MASTER TO..'語句中增長'MASTER_HOST=<host>,MASTER_PORT=<port>'語句
--insert-ignore 插入行時,使用INSERT IGNORE語句
--lines-terminated-by=name 輸出的文件中的行由這裏給定的字符串終止,即指定輸出文件中行的結束符
-x, --lock-all-tables 鎖定全部數據庫中的全部表。這是經過在整個轉儲期間採用全局讀鎖來實現的。
若是使用--single-transaction和--lock-tables兩個選項,將會自動關閉該選項
-l, --lock-tables 鎖定全部表以便讀取(即添加讀鎖)默認開啓,使用--skip-lock-tables選項禁用
開始導出前,鎖定全部表。用READ LOCAL鎖定表以容許MyISAM表並行插入。
對於支持事務的表例如InnoDB和BDB,--single-transaction是一個更好的選擇,由於它根本不須要鎖定表。
請注意當導出多個數據庫時,--lock-tables分別爲每一個數據庫鎖定表。
所以,該選項不能保證導出文件中的表在數據庫之間的邏輯一致性。不一樣數據庫表的導出狀態能夠徹底不一樣。
--log-error=name 在給定的文件中添加警告和錯誤
--master-data[=#] 這會致使二進制日誌位置和文件名附加到輸出。
若是等於1,則將其做爲CHANGE MASTER命令打印;
若是等於2,則該命令將以註釋符號爲前綴。
除非指定了--single-transaction,不然此選項將打開--lock-all-tables
(在這種狀況下,全局讀鎖僅在轉儲開始時花費很短的時間;)。
在全部狀況下,對日誌的任何操做都將在轉儲的確切時刻發生。該選項將自動關閉--lock-tables選項
該參數和--dump-slave方法同樣,只是它是記錄的是當前服務器的binlog,相
當於執行show master status,狀態(file,position)的值。
注意:--master-data不會中止當前服務器的主從服務
--max-allowed-packet=# 要發送到服務器或從服務器接收的最大數據包長度。
--net-buffer-length=# TCP/IP和套接字通訊的緩衝區大小。
--no-autocommit 使用autocommit/commit 語句包裹表。
-n, --no-create-db 若是給出--all-databases或--databases,
則禁止一般爲每一個轉儲數據庫輸出的CREATE DATABASE ... IF EXISTS語句。(仍然包含use DB_Name語句)
-t, --no-create-info 不要寫表建立信息,即沒有DROP TABLE IF EXISTS...及CREATE TABLE語句,即只導出數據,不導出表結構
-d, --no-data 沒有INSERT插入數據的語句,即只導出表結構,不導出數據
-N, --no-set-names 等同於--skip-set-charset選項
--opt 等同於--add-drop-table, --add-locks, --create-options,
--quick, --extended-insert, --lock-tables, --set-charset及--disable-keys選項
默認啓用,若禁用使用--skip-opt選項
--order-by-primary 若是存在這樣的key,則按主鍵或第一個惟一key對每一個表的行進行排序。
轉儲要加載到InnoDB表中的MyISAM表時會頗有用,但會使轉儲自己花費更長的時間
-p, --password[=name] 指定鏈接到Mysql服務器的密碼,
-P, --port=# 鏈接時指定端口
--protocol=name 鏈接時使用的協議(tcp, socket, pipe, memory).
-q, --quick 不要緩衝查詢,直接轉儲到stdout(默認啓用,使用--skip-quick禁用.)
-Q, --quote-names 用反引號引用表和列名稱 (`) 默認啓用,使用--skip-quote-names禁用
--replace 使用REPLACE INTO代替INSERT INTO.
-r, --result-file=name 直接輸出到給定文件。此選項應在使用回車換行符對(\r\n)
來分隔文本行的系統(例如,DOS,Windows)中使用。此選項可確保僅使用單個換行符。
-R, --routines 轉儲存儲的例程(函數和過程)。
--set-charset 添加'SET NAMES default_character_set' 語句到輸出(默認開啓,使用--skip-set-charset選項禁用)
--set-gtid-purged[=name]
添加'SET @@GLOBAL.GTID_PURGED'到輸出. 該選項可取的值有:ON、OFF、AUTO
若是取值ON,且GTID在服務器上沒有被啓用,將會產生一個錯誤
若是取值OFF,該選項不生效.
若是取值AUTO(默認),且GTID在服務器上被啓用'SET @@GLOBAL.GTID_PURGED' 語句將添加到輸出.
若GTID在服務器上被禁用,AUTO參數不起做用,tcp
--single-transaction 經過轉儲單個事務中的全部表來建立一致的快照。
僅適用於存儲在支持多版本化的存儲引擎中的表(目前只有InnoDB);
轉儲不保證與其餘存儲引擎一致。
雖然正在進行--single-transaction轉儲,但爲了確保有效的轉儲文件(正確的表內容和二進制日誌位置),
其餘任何鏈接都不該使用如下語句:
ALTER TABLE,DROP TABLE,RENAME TABLE,TRUNCATE TABLE,由於一致的快照不會與它們隔離。
該選項將自動關閉--lock-tables選項
--dump-date 將備份的日期輸出到輸出的結尾,默認啓用,使用--skip-dump-date選項禁用
--skip-opt 禁用--opt選項. 即禁用--add-drop-table, --add-locks,
--create-options, --quick, --extended-insert,
--lock-tables, --set-charset, 和 --disable-keys選項
-S, --socket=name 使用socket文件鏈接時,指定socket文件
--secure-auth 若是使用老的協議(4.1.1之前),則拒絕客戶端鏈接服務器,默認開啓,使用--skip-secure-auth選項禁用
--ssl 啓用SSL進行鏈接(自動啓用其餘標誌)。
--ssl-ca=name PEM格式的CA文件(檢查OpenSSL文檔,隱含--ssl選項已啓用)。
--ssl-capath=name CA文件的目錄(檢查OpenSSL文檔,隱含--ssl選項已啓用)。
--ssl-cert=name PEM格式的X509 cert證書 (隱含--ssl選項已啓用).
--ssl-cipher=name 要使用的SSL密碼(隱含--ssl選項已啓用).
--ssl-key=name PEM格式的X509的key(implies --ssl).
--ssl-crl=name 證書撤銷列表(implies --ssl).
--ssl-crlpath=name 證書撤銷列表路徑(implies --ssl).
--ssl-verify-server-cert 驗證服務器的證書中的"Common Name"與鏈接時使用的主機名。默認狀況下禁用此選項。
--ssl-mode=name 使用SSL方式鏈接.
-T, --tab=name 爲每一個表建立以製表符分隔的文本文件到給定路徑。 (建立.sql和.txt文件。)
注意:這僅適用於mysqldump與mysqld服務器在同一臺機器上運行的狀況!!!!!
--tables 覆蓋--databases (-B)選項
--triggers 備份每一個要備份的表的triggers(默認啓用,使用--skip-triggers禁用)
--tz-utc SET TIME_ZONE='+00:00' at top of dump to allow dumping of
TIMESTAMP data when a server has data in different time
zones or data is being moved between servers with
different time zones.
(默認啓用,使用--skip-tz-utc禁用)
-u, --user=name 指定用戶名
-v, --verbose 僅輸出mysqldump的3種使用的形式信息
-V, --version 輸出版本信息並退出
-w, --where=name 僅轉儲選定的記錄。引用是強制性的。
-X, --xml 將數據庫轉儲爲格式良好的XML。
--plugin-dir=name 客戶端插件的目錄。
--default-auth=name 要使用的默認身份驗證客戶端插件
--enable-cleartext-plugin 啓用/禁用明文身份驗證插件.
示例:
--all-databases , -A 導出所有數據庫。
mysqldump -uroot -p --all-databases
--all-tablespaces , -Y 導出所有表空間。
mysqldump -uroot -p --all-databases --all-tablespaces
--no-tablespaces , -y 不導出任何表空間信息。
mysqldump -uroot -p --all-databases --no-tablespaces
--add-drop-database #每一個數據庫建立以前添加drop數據庫語句。
mysqldump -uroot -p --all-databases --add-drop-database
--add-drop-table #每一個數據表建立以前添加drop數據表語句。(默認爲打開狀態,使用--skip-add-drop-table取消選項)
mysqldump -uroot -p --all-databases (默認添加drop語句)
mysqldump -uroot -p --all-databases --skip-add-drop-table (取消drop語句)
--add-locks #在每一個表導出以前增長LOCK TABLES而且以後UNLOCK TABLE。(默認爲打開狀態,使用--skip-add-locks取消選項)
mysqldump -uroot -p --all-databases (默認添加LOCK語句)
mysqldump -uroot -p --all-databases –skip-add-locks (取消LOCK語句)
--allow-keywords #容許建立是關鍵詞的列名字。這由表名前綴於每一個列名作到。
mysqldump -uroot -p --all-databases --allow-keywords
--apply-slave-statements #在'CHANGE MASTER'前添加'STOP SLAVE',而且在導出的最後添加'START SLAVE'。
mysqldump -uroot -p --all-databases --apply-slave-statements
--character-sets-dir #字符集文件的目錄
mysqldump -uroot -p --all-databases --character-sets-dir=/usr/local/mysql/share/mysql/charsets
--comments #附加註釋信息。默認爲打開,能夠用--skip-comments取消
mysqldump -uroot -p --all-databases (默認記錄註釋)
mysqldump -uroot -p --all-databases --skip-comments (取消註釋)
--compatible #導出的數據將和其它數據庫或舊版本的MySQL 相兼容。值能夠爲ansi、mysql32三、mysql40、postgresql、oracle、mssql、db二、maxdb、no_key_options、no_tables_options、no_field_options等,要使用幾個值,用逗號將它們隔開。它並不保證能徹底兼容,而是儘可能兼容。
mysqldump -uroot -p --all-databases --compatible=ansi
--compact #導出更少的輸出信息(用於調試)。去掉註釋和頭尾等結構。可使用選項:
--skip-add-drop-table --skip-add-locks --skip-comments --skip-disable-keys
mysqldump -uroot -p --all-databases --compact
--complete-insert, -c 使用完整的insert語句(包含列名稱)。這麼作能提升插入效率,可是可能會受到max_allowed_packet參數的影響而致使插入失敗。
mysqldump -uroot -p --all-databases --complete-insert
--compress, -C #在客戶端和服務器之間啓用壓縮傳遞全部信息
mysqldump -uroot -p --all-databases --compress
--create-options, -a #在CREATE TABLE語句中包括全部MySQL特性選項。(默認爲打開狀態)
mysqldump -uroot -p --all-databases
--databases, -B #導出幾個數據庫。參數後面全部名字參量都被看做數據庫名。
mysqldump -uroot -p --databases test mysql
--debug #輸出debug信息,用於調試。默認值爲:d:t,/tmp/mysqldump.trace
mysqldump -uroot -p --all-databases --debug
mysqldump -uroot -p --all-databases --debug=」 d:t,/tmp/debug.trace」
--debug-check #檢查內存和打開文件使用說明並退出。
mysqldump -uroot -p --all-databases --debug-check
--debug-info #輸出調試信息並退出
mysqldump -uroot -p --all-databases --debug-info
--default-character-set #設置默認字符集,默認值爲utf8
mysqldump -uroot -p --all-databases --default-character-set=utf8
--delayed-insert #採用延時插入方式(INSERT DELAYED)導出數據
mysqldump -uroot -p --all-databases --delayed-insert
--delete-master-logs #master備份後刪除日誌. 這個參數將自動激活--master-data。
mysqldump -uroot -p --all-databases --delete-master-logs
--disable-keys
對於每一個表,用/*!40000 ALTER TABLE tbl_name DISABLE KEYS */;和/*!40000 ALTER TABLE tbl_name ENABLE KEYS */;語句引用INSERT語句。這樣能夠更快地導入dump出來的文件,由於它是在插入全部行後建立索引的。該選項只適合MyISAM表,默認爲打開狀態。
mysqldump -uroot -p --all-databases
--dump-slave #該選項將主的binlog位置和文件名追加到導出數據的文件中(show slave status)。
設置爲1時,將會以CHANGE MASTER命令輸出到數據文件;
設置爲2時,會在change前加上註釋。
該選項將會打開--lock-all-tables,除非--single-transaction被指定。
該選項會自動關閉--lock-tables選項。默認值爲0。
mysqldump -uroot -p --all-databases --dump-slave=1
mysqldump -uroot -p --all-databases --dump-slave=2
--master-data 該選項將當前服務器的binlog的位置和文件名追加到輸出文件中(show master status)。
若是爲1,將會輸出CHANGE MASTER 命令;
若是爲2,輸出的CHANGE MASTER命令前添加註釋信息。
該選項將打開--lock-all-tables 選項,除非--single-transaction也被指定(在這種狀況下,全局讀鎖在開始導出時得到很短的時間;
其餘內容參考下面的--single-transaction選項)。
該選項自動關閉--lock-tables選項。
mysqldump -uroot -p --host=localhost --all-databases --master-data=1;
mysqldump -uroot -p --host=localhost --all-databases --master-data=2;
--events, -E 導出事件。
mysqldump -uroot -p --all-databases --events
--extended-insert, -e 使用具備多個VALUES列的INSERT語法。這樣使導出文件更小,並加速導入時的速度。
默認爲打開狀態,使用--skip-extended-insert取消選項。
mysqldump -uroot -p --all-databases
mysqldump -uroot -p --all-databases--skip-extended-insert (取消選項)
--fields-terminated-by 導出文件中忽略給定字段。與--tab選項一塊兒使用,不能用於--databases和--all-databases選項
mysqldump -uroot -p test test --tab=」/home/mysql」 --fields-terminated-by=」#」
--fields-enclosed-by 輸出文件中的各個字段用給定字符包裹。與--tab選項一塊兒使用,不能用於--databases和--all-databases選項
mysqldump -uroot -p test test --tab=」/home/mysql」 --fields-enclosed-by=」#」
--fields-optionally-enclosed-by 輸出文件中的各個字段用給定字符選擇性包裹。
與--tab選項一塊兒使用,不能用於--databases和--all-databases選項
mysqldump -uroot -p test test --tab=」/home/mysql」 --fields-enclosed-by=」#」 --fields-optionally-enclosed-by=」#」
--fields-escaped-by 輸出文件中的各個字段忽略給定字符。與--tab選項一塊兒使用,不能用於--databases和--all-databases選項
mysqldump -uroot -p mysql user --tab=」/home/mysql」 --fields-escaped-by=」#」
--flush-logs 開始導出以前刷新日誌。
注意:假如一次導出多個數據庫(使用選項--databases或者--all-databases),將會逐個數據庫刷新日誌。
除使用--lock-all-tables或者--master-data外。
在這種狀況下,日誌將會被刷新一次,相應的因此表同時被鎖定。
所以,若是打算同時導出和刷新日誌應該使用--lock-all-tables 或者--master-data 和--flush-logs。
mysqldump -uroot -p --all-databases --flush-logs
--flush-privileges 在導出mysql數據庫以後,發出一條FLUSH PRIVILEGES 語句。
爲了正確恢復,該選項應該用於導出mysql數據庫和依賴mysql數據庫數據的任什麼時候候。
mysqldump -uroot -p --all-databases --flush-privileges
--force 在導出過程當中忽略出現的SQL錯誤。
mysqldump -uroot -p --all-databases --force
--help 顯示幫助信息並退出。
mysqldump --help
--hex-blob 使用十六進制格式導出二進制字符串字段。
若是有二進制數據就必須使用該選項。影響到的字段類型有BINARY、VARBINARY、BLOB。
mysqldump -uroot -p --all-databases --hex-blob
--host, -h 須要導出的主機信息
mysqldump -uroot -p --host=localhost --all-databases
--ignore-table 不導出指定表。指定忽略多個表時,須要重複屢次,每次一個表。
每一個表必須同時指定數據庫和表名。
例如:--ignore-table=database.table1 --ignore-table=database.table2 ……
mysqldump -uroot -p --host=localhost --all-databases --ignore-table=mysql.user
--include-master-host-port 在--dump-slave產生的'CHANGE MASTER TO..'語句中增長'MASTER_HOST=<host>,MASTER_PORT=<port>'
mysqldump -uroot -p --host=localhost --all-databases --include-master-host-port
--insert-ignore 在插入行時使用INSERT IGNORE語句.
mysqldump -uroot -p --host=localhost --all-databases --insert-ignore
--lines-terminated-by 輸出文件的每行用給定字符串劃分。與--tab選項一塊兒使用,不能用於--databases和--all-databases選項。
mysqldump -uroot -p --host=localhost test test --tab=」/tmp/mysql」 --lines-terminated-by=」##」
--lock-all-tables, -x 提交請求鎖定全部數據庫中的全部表,以保證數據的一致性。這是一個全局讀鎖,
而且自動關閉--single-transaction 和--lock-tables 選項。
mysqldump -uroot -p --host=localhost --all-databases --lock-all-tables
--lock-tables, -l 開始導出前,鎖定全部表。用READ LOCAL鎖定表以容許MyISAM表並行插入。
對於支持事務的表例如InnoDB和BDB,--single-transaction是一個更好的選擇,由於它根本不須要鎖定表。
注意當導出多個數據庫時,--lock-tables分別爲每一個數據庫鎖定表。
所以,該選項不能保證導出文件中的表在數據庫之間的邏輯一致性。不一樣數據庫表的導出狀態能夠徹底不一樣。
mysqldump -uroot -p --host=localhost --all-databases --lock-tables
--log-error 附加警告和錯誤信息到給定文件
mysqldump -uroot -p --host=localhost --all-databases --log-error=/tmp/mysqldump_error_log.err
--max_allowed_packet 服務器發送和接受的最大包長度。
mysqldump -uroot -p --host=localhost --all-databases --max_allowed_packet=10240
--net_buffer_length TCP/IP和socket鏈接的緩存大小。
mysqldump -uroot -p --host=localhost --all-databases --net_buffer_length=1024
--no-autocommit 使用autocommit/commit 語句包裹表。
mysqldump -uroot -p --host=localhost --all-databases --no-autocommit
--no-create-db, -n 只導出數據,而不添加CREATE DATABASE 語句。
mysqldump -uroot -p --host=localhost --all-databases --no-create-db
--no-create-info, -t 只導出數據,而不添加CREATE TABLE 語句。
mysqldump -uroot -p --host=localhost --all-databases --no-create-info
--no-data, -d 不導出任何數據,只導出數據庫表結構。
mysqldump -uroot -p --host=localhost --all-databases --no-data
--no-set-names, -N 等同於--skip-set-charset
mysqldump -uroot -p --host=localhost --all-databases --no-set-names
--opt 等同於--add-drop-table, --add-locks, --create-options, --quick, --extended-insert,
--lock-tables, --set-charset, --disable-keys 該選項默認開啓, 能夠用--skip-opt禁用.
mysqldump -uroot -p --host=localhost --all-databases --opt
--order-by-primary 若是存在主鍵,或者第一個惟一鍵,對每一個表的記錄進行排序。
在導出MyISAM表到InnoDB表時有效,但會使得導出工做花費很長時間。
mysqldump -uroot -p --host=localhost --all-databases --order-by-primary
--password, -p 鏈接數據庫密碼
--pipe(windows系統可用) 使用命名管道鏈接mysql
mysqldump -uroot -p --host=localhost --all-databases --pipe
--port, -P 鏈接數據庫端口號
--protocol 使用的鏈接協議,包括:tcp, socket, pipe, memory.
mysqldump -uroot -p --host=localhost --all-databases --protocol=tcp
--quick, -q 不緩衝查詢,直接導出到標準輸出。默認爲打開狀態,使用--skip-quick取消該選項。
mysqldump -uroot -p --host=localhost --all-databases
mysqldump -uroot -p --host=localhost --all-databases --skip-quick
--quote-names,-Q 使用(`)引發表和列名。默認爲打開狀態,使用--skip-quote-names取消該選項。
mysqldump -uroot -p --host=localhost --all-databases
mysqldump -uroot -p --host=localhost --all-databases --skip-quote-names
--replace 使用REPLACE INTO 取代INSERT INTO.
mysqldump -uroot -p --host=localhost --all-databases --replace
--result-file, -r 直接輸出到指定文件中。該選項應該用在使用回車換行對(\\r\\n)換行的系統上
(例如:DOS,Windows)。該選項確保只有一行被使用。
mysqldump -uroot -p --host=localhost --all-databases --result-file=/tmp/mysqldump_result_file.txt
--routines, -R 導出存儲過程以及自定義函數。
mysqldump -uroot -p --host=localhost --all-databases --routines
--set-charset 添加'SET NAMES default_character_set'到輸出文件。默認爲打開狀態,使用--skip-set-charset關閉選項。
mysqldump -uroot -p --host=localhost --all-databases
mysqldump -uroot -p --host=localhost --all-databases --skip-set-charset
--single-transaction 該選項在導出數據以前提交一個BEGIN SQL語句,
BEGIN 不會阻塞任何應用程序且能保證導出時數據庫的一致性狀態。
它只適用於多版本存儲引擎,僅InnoDB。本選項和--lock-tables 選項是互斥的,由於LOCK TABLES 會使任何掛起的事務隱含提交。要想導出大表的話,應結合使用--quick 選項。
mysqldump -uroot -p --host=localhost --all-databases --single-transaction
--dump-date 將導出時間添加到輸出文件中。默認爲打開狀態,使用--skip-dump-date關閉選項。
mysqldump -uroot -p --host=localhost --all-databases
mysqldump -uroot -p --host=localhost --all-databases --skip-dump-date
--skip-opt 禁用–opt選項.
mysqldump -uroot -p --host=localhost --all-databases --skip-opt
--socket,-S 指定鏈接mysql的socket文件位置,默認路徑/tmp/mysql.sock
mysqldump -uroot -p --host=localhost --all-databases --socket=/tmp/mysqld.sock
--tab,-T 爲每一個表在給定路徑建立tab分割的文本文件。
注意:僅僅用於mysqldump和mysqld服務器運行在相同機器上。注意使用--tab不能指定--databases參數
mysqldump -uroot -p --host=localhost test test --tab="/home/mysql"
--tables 覆蓋--databases (-B)參數,指定須要導出的表名,在後面的版本會使用table取代tables。
mysqldump -uroot -p --host=localhost --databases test --tables test
--triggers 導出觸發器。該選項默認啓用,用--skip-triggers禁用它。
mysqldump -uroot -p --host=localhost --all-databases --triggers
--tz-utc 在導出頂部設置時區TIME_ZONE='+00:00' ,
以保證在不一樣時區導出的TIMESTAMP 數據或者數據被移動其餘時區時的正確性。
mysqldump -uroot -p --host=localhost --all-databases --tz-utc
--user, -u 指定鏈接的用戶名。
--verbose, --v 輸出多種平臺信息。
--version, -V 輸出mysqldump版本信息並退出
--where, -w 只轉儲給定的WHERE條件選擇的記錄。請注意若是條件包含命令解釋符專用空格或字符,必定要將條件引用起來。
mysqldump -uroot -p --host=localhost --all-databases --where=」 user=’root’」
--xml, -X 導出XML格式.
mysqldump -uroot -p --host=localhost --all-databases --xml
--plugin_dir 客戶端插件的目錄,用於兼容不一樣的插件版本。
mysqldump -uroot -p --host=localhost --all-databases --plugin_dir=」/usr/local/lib/plugin」
--default_auth 客戶端插件默認使用權限。mysqldump -uroot -p --host=localhost --all-databases --default-auth=」/usr/local/lib/plugin/<PLUGIN>」