1. 程式人生 > >MySQL的mysqldump指令引數詳解

MySQL的mysqldump指令引數詳解

MySQL的mysqldump指令可以進行邏輯備份,其使用格式為mysqlpump [options] > dump.sql。下述為其簡單應用格式:
1.將資料庫中某個資料庫備份

$ mysqldump -uroot -pPassword [db_name] > [file_name]
例: mysqldump -uroot -p123456 test > test.sql

生成的test.sql包含資料結構和資料.
2.遠端備份

$ mysqldump -uroot -pPassword -hhost -Pport [db_name] > [
file_name] 例: mysqldump -uroot -p123456 -h192.168.14.171 -P13306 test > test.sql

mysqldump支援一下引數:

引數名 說明 使用格式(預設值)
–add-drop-database CREATE DATABLE前新增DROP DATABASE語句
–add-drop-table CREATE TABLE前新增DROP TABLE語句 預設開啟
–add-drop-user CREATE USER前新增DROP USER語句
–add-drop-trigger CREATE TRIGGER前新增DROP TRIGGER語句
–add-locks 在每個表匯出時新增LOCK TABLES並且之後進行UNLOCK TABLES 預設開啟
–all-databases 匯出所有資料庫
–allow-keywords 允許建立以關鍵字為列名的列
–apply-slave-statements CHANGE MASTER前新增STOP SLAVE語句,在匯出最後START SLAVE
–bind-address 使用指定的網路介面連線MySQL資料庫
–character-sets-dir 指定安裝字符集的目錄
–comments 將註釋匯入到dump檔案中 預設開啟
–compact 產生更少的輸出資訊
–compatible 匯出的資料將與其它型別資料庫或舊版本的MySQL相容,值可以為ansi、mysql323、mysql40、postgresql、oracle、mssql、db2、maxdb、no_key_options、no_tables_options、no_field_options等
–complete-insert 使用完整的包含列名的插入語句
–compress 在客戶端與伺服器間壓縮傳遞所有的資訊
–create-options 在CREATE TABLE語句中包含所有MySQL表特性選項 預設開啟
–databases 輸入後的所有引數都作為資料庫名
–debug 輸出debug日誌
–debug-check 當程式退出時,列印debug資訊
–debug-info 當程式退出時輸出debug資訊、記憶體和CPU資訊
–default-auth 使用認證外掛
–default-character-set 指定預設字符集 預設值為utf8
–defaults-extra-file 讀取配置檔案
–defaults-file 只讀命名檔案
–defaults-group-suffix Option group suffix value
–delete-master-logs 在master備份後刪除日誌
–disable-keys For each table, surround INSERT statements with statements to disable and enable keys
–dump-date Include dump date as “Dump completed on” comment if --comments is given
–dump-slave 該選項將導致主的binlog位置和檔名追加到匯出資料的檔案中
–enable-cleartext-plugin Enable cleartext authentication plugin 5.7.10啟用
–events 從資料庫匯出event
–extended-insert 使用多行插入語句
–fields-enclosed-by 輸出檔案中的各個欄位用給定字元包裹。與--tab選項一起使用
–fields-escaped-by 輸出檔案中的各個欄位忽略給定字元。與–tab選項一起使用
–fields-optionally-enclosed-by 輸出檔案中的各個欄位用給定字元選擇性包裹。與–tab選項一起使用
–fields-terminated-by 匯出檔案中忽略的指定欄位,與--tab 一起使用
–flush-logs 在開始匯出前重新整理日誌
–flush-privileges 在匯出資料庫後,執行FLUSH PRIVILEGES
–force 在匯出表的過程中忽略出現的SQL錯誤
–get-server-public-key 從服務獲取RSA公共key 5.7.23
–help 展示幫助資訊並退出
–hex-blob 使用十六進位制格式匯出二進位制字串欄位
–host 要連線的遠端主機IP
–ignore-error 忽略指定錯誤 5.7.1啟用
–ignore-table 不匯出指定表
–include-master-host-port --dump-slave產生的CHANGE MASTER TO..語句中增加MASTER_HOST=<host>,MASTER_PORT=<port>
–insert-ignore INSERT IGNORE替代INSERT
–lines-terminated-by 輸出檔案的每行用給定字串劃分。與–tab選項一起使用
–lock-all-tables 提交請求鎖定所有資料庫中的所有表,以保證資料的一致性。這是一個全域性讀鎖,並且自動關閉
–lock-tables 在dump表之前鎖表
–log-error-file 匯出警告和錯誤資訊到指定檔案
–login-path Read login path options from .mylogin.cnf
–master-data 該選項將binlog的位置和檔名追加到輸出檔案中
–max-allowed-packet 設定從服務接收或傳送到服務的最大包長度
–net-buffer-length 設定TCP/IP 和socket連線的快取大小
–no-autocommit 使用autocommit/commit 語句包裹表。
–no-create-db 不匯出建庫語句
–no-create-info 不匯出建表語句
–no-data 不匯出表資料
–no-defaults Read no option files
–no-set-names 等同於--skip-set-charset
–no-tablespaces 不匯入表空間資訊
–opt 等同於–add-drop-table, --add-locks, --create-options, --quick, --extended-insert, --lock-tables, --set-charset, --disable-keys 該選項預設開啟, 可以用–skip-opt禁用.
–order-by-primary 匯出每個表的資料行時按照表的主鍵或者第一個唯一欄位排序
–password 連線資料庫的密碼
–pipe 在Windows,使用命名管道連線mysql
–plugin-dir 指定外掛安裝的目錄
–port 資料庫連線的埠
–print-defaults 輸出預設引數
–protocol 連線所用的協議
–quick 不緩衝查詢,直接匯出到標準輸出 預設開啟
–quote-names 使用(`)引起表和列名 預設開啟
–replace REPLACE取代INSERT語句
–result-file 直接輸出到指定檔案中
–routines 匯出儲存的routine(儲存過程和函式)
–secure-auth 不以舊形式向服務傳送密碼 5.7.4啟用,5.7.5棄用
–server-public-key-path Path name to file containing RSA public key 5.7.23
–set-charset 新增SET NAMES default_character_set到輸出檔案 預設開啟
–set-gtid-purged Whether to add SET @@GLOBAL.GTID_PURGED to output
–shared-memory-base-name The name of shared memory to use for shared-memory connections
–single-transaction 選項在匯出資料之前提交一個BEGIN SQL語句,BEGIN 不會阻塞任何應用程式且能保證匯出時資料庫的一致性狀態。它只適用於多版本儲存引擎,僅InnoDB。本選項和–lock-tables 選項是互斥的,因為LOCK TABLES 會使任何掛起的事務隱含提交。要想匯出大表的話,應結合使用–quick 選項。
–skip-add-drop-table 不在CREATE TABLE前新增DROP TABLE語句
–skip-add-locks 匯出時不加鎖
–skip-comments 不匯出註釋
–skip-compact 不減少輸出資訊
–skip-disable-keys 不disable key
–skip-extended-insert 關閉extended-insert
–skip-opt 關閉--opt設定的
–skip-quick 進行資料緩衝Do not retrieve rows for a table from the server a row at a time
–skip-quote-names 取消1–quote-names`
–skip-set-charset 不設定字符集
–skip-triggers 不匯出觸發器
–skip-tz-utc 關閉時區設定
–socket 指定連線mysql的socket檔案位置
–ssl Enable encrypted connection
–ssl-ca File that contains list of trusted SSL Certificate Authorities
–ssl-capath Directory that contains trusted SSL Certificate Authority certificate files
–ssl-cert File that contains X.509 certificate
–ssl-cipher List of permitted ciphers for connection encryption
–ssl-crl File that contains certificate revocation lists
–ssl-crlpath Directory that contains certificate revocation list files
–ssl-key File that contains X.509 key
–ssl-mode Security state of connection to server 5.7.11
–ssl-verify-server-cert Verify host name against server certificate Common Name identity
–tab為每個表在給定路徑建立tab分割的文字檔案
–tables 覆蓋–databases (-B)引數,指定需要匯出的表名。
–tls-version Protocols permitted for encrypted connections 5.7.10
–triggers 匯出觸發器
–tz-utc 新增SET TIME_ZONE='+00:00'到匯出的檔案中,保證匯出資料的時區正確性
–user 指定連線MySQL的使用者名稱
----verbose 輸出多種平臺資訊。
–version 顯示mysqldump的版本資訊並退出 5.7.9
–where 只匯出符合where條件的資料
–xml 匯出XML格式.