mysqldump引數說明

chenfeng發表於2018-06-13
1. 語法選項說明
-h, --host=name
主機名
-P[ port_num], --port=port_num
用於連線MySQL伺服器的的TCP/IP埠號

--master-data
這個選項可以把binlog的位置和檔名新增到輸出中,如果等於1,將會列印成一個CHANGE MASTER命令;如果等於2,會加上註釋字首。並且這個選項會自動開啟--lock-all-tables,除非同時設定了--single-transaction(這種情況下,全域性讀鎖只會在開始dump的時候加上一小段時間,不要忘了閱讀--single-transaction的部分)。在任何情況下,所有日誌中的操作都會發生在匯出的準確時刻。這個選項會自動關閉--lock-tables。

-x, --lock-all-tables
鎖定所有庫中所有的表。這是透過在整個dump的過程中持有全域性讀鎖來實現的。會自動關閉--single-transaction和--lock-tables。


--single-transaction
透過將匯出操作封裝在一個事務內來使得匯出的資料是一個一致性快照。只有當表使用支援MVCC的儲存引擎(目前只有InnoDB)時才可以工作;其他引擎不能保證匯出是一致的。當匯出開啟了--single-transaction選項時,要確保匯出檔案有效(正確的表資料和二進位制日誌位置),就要保證沒有其他連線會執行如下語句:ALTER TABLE, DROP TABLE, RENAME TABLE, TRUNCATE TABLE,這會導致一致性快照失效。這個選項開啟後會自動關閉--lock-tables。


-l, --lock-tables
對所有表加讀鎖。(預設是開啟的,用--skip-lock-tables來關閉,上面的選項會把關閉-l選項)


-F, --flush-logs
在開始匯出前重新整理伺服器的日誌檔案。注意,如果你一次性匯出很多資料庫(使用 -databases=或--all-databases選項),匯出每個庫時都會觸發日誌重新整理。例外是當使用了--lock-all-tables或--master-data時:日誌只會被重新整理一次,那個時候所有表都會被鎖住。所以如果你希望你的匯出和日誌重新整理發生在同一個確定的時刻,你需要使用--lock-all-tables,或者--master-data配合--flush-logs。


--delete-master-logs
備份完成後刪除主庫上的日誌。這個選項會自動開啟–master-data`。


--opt
同-add-drop-table, --add-locks, --create-options, --quick, --extended-insert, --lock-tables, --set-charset, --disable-keys。(預設已開啟,--skip-opt關閉表示這些選項保持它的預設值)應該給你為讀入一個MySQL伺服器的儘可能最快的匯出,--compact差不多是禁用上面的選項。
執行備份資料庫表結構時,指定了 --skip-opt 選項,相當於禁用下面幾個引數:
--add-drop-table, --add-locks,
--create-options, --quick, --extended-insert,
--lock-tables, --set-charset, and --disable-keys


-q, --quick
不緩衝查詢,直接匯出至stdout。(預設開啟,用--skip-quick來關閉)該選項用於轉儲大的表。
--set-charset
將SET NAMES default_character_set加到輸出中。該選項預設啟用。要想禁用SET NAMES語句,使用--skip-set-charset。
--add-drop-tables
在每個CREATE TABLE語句前新增DROP TABLE語句。預設開啟。
--add-locks
在每個表匯出之前增加LOCK TABLES並且之後UNLOCK TABLE。(為了使得更快地插入到MySQL)。預設開啟。
--create-option
在CREATE TABLE語句中包括所有MySQL表選項。預設開啟,使用--skip-create-options來關閉。
-e, --extended-insert
使用全新多行INSERT語法,預設開啟(給出更緊縮並且更快的插入語句)


-d, --no-data
不寫入表的任何行資訊。如果你只想得到一個表的結構的匯出,這是很有用的。


--add-drop-database
在create資料庫之前先DROP DATABASE,預設關閉,所以一般在匯入時需要保證資料庫已存在。


--default-character-set=
使用的預設字符集。如果沒有指定,mysqldump使用utf8。


-B, --databases
轉儲幾個資料庫。通常情況,mysqldump將命令列中的第1個名字參量看作資料庫名,後面的名看作表名。使用該選項,它將所有名字參量看作資料庫名。CREATE DATABASE IF NOT EXISTS db_name和USE db_name語句包含在每個新資料庫前的輸出中。


--tables
覆蓋--database選項。選項後面的所有參量被看作表名。


-u[ name], --user=
連線伺服器時使用的MySQL使用者名稱。


-p[password], --password[=password]
連線伺服器時使用的密碼。如果你使用短選項形式(-p),不能在選項和密碼之間有一個空格。如果在命令列中,忽略了--password或-p選項後面的 密碼值,將提示你輸入一個。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/15498/viewspace-2156089/,如需轉載,請註明出處,否則將追究法律責任。

相關文章