mysqldump 引數詳解(基於MySQL 5.6)
mysqldump選項:
Format | Description | Introduced |
---|---|---|
--add-drop-database | Add a DROP DATABASE statement before each CREATE DATABASE statement |
|
--add-drop-table | Add a DROP TABLE statement before each CREATE TABLE statement | |
--add-drop-trigger | Add a DROP TRIGGER statement before each CREATE TRIGGER statement | |
--add-locks | Surround each table dump with LOCK TABLES and UNLOCK TABLES statements | |
--all-databases | Dump all tables in all databases | |
--allow-keywords | Allow creation of column names that are keywords | |
--apply-slave-statements | Include STOP SLAVE prior to CHANGE MASTER statement and START SLAVE at end of output | |
--bind-address=ip_address | Use specified network interface to connect to MySQL Server | |
--comments | Add comments to the dump file | |
--compact | Produce more compact output | |
--compatible=name[,name,...] | Produce output that is more compatible with other database systems or with older MySQL servers | |
--complete-insert | Use complete INSERT statements that include column names | |
--create-options | Include all MySQL-specific table options in CREATE TABLE statements | |
--databases | Dump several databases | |
--debug[=debug_options] | Write a debugging log | |
--debug-check | Print debugging information when program exits | |
--debug-info | Print debugging information, memory, and CPU statistics when program exits | |
--default-auth=plugin | Authentication plugin to use | |
--default-character-set=charset_name | Specify default character set | |
--defaults-extra-file=file_name | Read option file in addition to usual option files | |
--defaults-file=file_name | Read only named option file | |
--defaults-group-suffix=str | Option group suffix value | |
--delayed-insert | Write INSERT DELAYED statements rather than INSERT statements | |
--delete-master-logs | On a master replication server, delete the binary logs after performing the dump operation | |
--disable-keys | For each table, surround the 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[=value] | Include CHANGE MASTER statement that lists binary log coordinates of slave's master | |
--events | Dump events from the dumped databases | |
--extended-insert | Use multiple-row INSERT syntax that include several VALUES lists | |
--fields-enclosed-by=string | This option is used with the --tab option and has the same meaning as the corresponding clause for LOAD DATA INFILE | |
--fields-escaped-by | This option is used with the --tab option and has the same meaning as the corresponding clause for LOAD DATA INFILE | |
--fields-optionally-enclosed-by=string | This option is used with the --tab option and has the same meaning as the corresponding clause for LOAD DATA INFILE | |
--fields-terminated-by=string | This option is used with the --tab option and has the same meaning as the corresponding clause for LOAD DATA INFILE | |
--flush-logs | Flush the MySQL server log files before starting the dump | |
--flush-privileges | Emit a FLUSH PRIVILEGES statement after dumping the mysql database | |
--help | Display help message and exit | |
--hex-blob | Dump binary columns using hexadecimal notation (for example, 'abc' becomes 0x616263) | |
--host | Host to connect to (IP address or hostname) | |
--ignore-table=db_name.tbl_name | Do not dump the given table | |
--include-master-host-port | Include MASTER_HOST/MASTER_PORT options in CHANGE MASTER statement produced with --dump-slave | |
--insert-ignore | Write INSERT IGNORE statements rather than INSERT statements | |
--lines-terminated-by=string | This option is used with the --tab option and has the same meaning as the corresponding clause for LOAD DATA INFILE | |
--lock-all-tables | Lock all tables across all databases | |
--lock-tables | Lock all tables before dumping them | |
--log-error=file_name | Append warnings and errors to the named file | |
--login-path=name | Read login path options from .mylogin.cnf | 5.6.6 |
--master-data[=value] | Write the binary log file name and position to the output | |
--max_allowed_packet=value | Maximum packet length to send to or receive from server | |
--net_buffer_length=value | Buffer size for TCP/IP and socket communication | |
--no-autocommit | Enclose the INSERT statements for each dumped table within SET autocommit = 0 and COMMIT statements | |
--no-create-db | This option suppresses the CREATE DATABASE statements | |
--no-create-info | Do not write CREATE TABLE statements that re-create each dumped table | |
--no-data | Do not dump table contents | |
--no-defaults | Read no option files | |
--no-set-names | Same as --skip-set-charset | |
--no-tablespaces | Do not write any CREATE LOGFILE GROUP or CREATE TABLESPACE statements in output | |
--opt | Shorthand for --add-drop-table --add-locks --create-options --disable-keys --extended-insert --lock-tables --quick --set-charset. | |
--order-by-primary | Dump each table's rows sorted by its primary key, or by its first unique index | |
--password[=password] | Password to use when connecting to server | |
--pipe | On Windows, connect to server using named pipe | |
--plugin-dir=path | Directory where plugins are installed | |
--port=port_num | TCP/IP port number to use for connection | |
--print-defaults | Print defaults | |
--protocol=type | Connection protocol to use | |
--quick | Retrieve rows for a table from the server a row at a time | |
--quote-names | Quote identifiers within backtick characters | |
--replace | Write REPLACE statements rather than INSERT statements | |
--result-file=file | Direct output to a given file | |
--routines | Dump stored routines (procedures and functions) from the dumped databases | |
--secure-auth | Do not send passwords to the server in old (pre-4.1.1) format | 5.6.17 |
--set-charset | Add SET NAMES default_character_set to output | |
--set-gtid-purged=value | Whether to add SET @@GLOBAL.GTID_PURGED to output | 5.6.9 |
--shared-memory-base-name=name | The name of shared memory to use for shared-memory connections | |
--single-transaction | This option issues a BEGIN SQL statement before dumping data from the server | |
--skip-add-drop-table | Do not add a DROP TABLE statement before each CREATE TABLE statement | |
--skip-add-locks | Do not add locks | |
--skip-comments | Do not add comments to the dump file | |
--skip-compact | Do not produce more compact output | |
--skip-disable-keys | Do not disable keys | |
--skip-extended-insert | Turn off extended-insert | |
--skip-opt | Turn off the options set by --opt | |
--skip-quick | Do not retrieve rows for a table from the server a row at a time | |
--skip-quote-names | Do not quote identifiers | |
--skip-set-charset | Suppress the SET NAMES statement | |
--skip-triggers | Do not dump triggers | |
--skip-tz-utc | Turn off tz-utc | |
--socket=path | For connections to localhost, the Unix socket file to use | |
--ssl | Enable SSL for connection | |
--ssl-ca=file_name | Path of file that contains list of trusted SSL CAs | |
--ssl-capath=dir_name | Path of directory that contains trusted SSL CA certificates in PEM format | |
--ssl-cert=file_name | Path of file that contains X509 certificate in PEM format | |
--ssl-cipher=cipher_list | List of permitted ciphers to use for SSL encryption | |
--ssl-crl=file_name | Path of file that contains certificate revocation lists | 5.6.3 |
--ssl-crlpath=dir_name | Path of directory that contains certificate revocation list files | 5.6.3 |
--ssl-key=file_name | Path of file that contains X509 key in PEM format | |
--ssl-verify-server-cert | Verify server Common Name value in its certificate against host name used when connecting to server | |
--tab=path | Produce tab-separated data files | |
--tables | Override the --databases or -B option | |
--triggers | Dump triggers for each dumped table | |
--tz-utc | Add SET TIME_ZONE='+00:00' to the dump file | |
--user=user_name | MySQL user name to use when connecting to server | |
--verbose | Verbose mode | |
--version | Display version information and exit | |
--where='where_condition' | Dump only rows selected by the given WHERE condition | |
--xml | Produce XML output |
CONNECTION OPTIONS
--bind-address=ip_address
如果一臺server上有多個網路介面,用指定的網路介面去連線mysql server,從mysql5.6.1開始支援此選項
--compress, -C
壓縮傳送在客戶端和伺服器之間的所有資訊
--default-auth=plugin
使用客戶端的認證外掛
--host=host_name, -h host_name
需要對哪個主機執行mysqldump,預設為localhost
--login-path=name
透過mysql的login_path去登入(透過mysql_config_editor建立)
--password[=password], -p[password]
--host對應的mysql server密碼
--pipe, -W
如果透過命名管道去連線,指定命名管道(僅windows平臺)
--plugin-dir=path
需要和 --default-auth 選項一起使用,用於提供目錄去尋找外掛
--port=port_num, -P port_num
--host對應的mysql server埠號
--protocol={TCP|SOCKET|PIPE|MEMORY}
連線時所用的連線協議
附:
--secure-auth
防止老版本的mysql client使用透過舊密碼(old_password())加密的密碼請求訪問。
除此之前,在mysql 5.6.4之前預設值為0,之後改為1。
使用--skip-secure-auth可以跳過此選項。
--socket=path, -S path
指定socket檔案。
For connections to localhost, the Unix socket file to
use, or, on Windows, the name of the named pipe to use.
--ssl*
用SSL連線
--user=user_name, -u user_name
--host對應的mysql server的使用者名稱
如果一臺server上有多個網路介面,用指定的網路介面去連線mysql server,從mysql5.6.1開始支援此選項
--compress, -C
壓縮傳送在客戶端和伺服器之間的所有資訊
--default-auth=plugin
使用客戶端的認證外掛
--host=host_name, -h host_name
需要對哪個主機執行mysqldump,預設為localhost
--login-path=name
透過mysql的login_path去登入(透過mysql_config_editor建立)
--password[=password], -p[password]
--host對應的mysql server密碼
--pipe, -W
如果透過命名管道去連線,指定命名管道(僅windows平臺)
--plugin-dir=path
需要和 --default-auth 選項一起使用,用於提供目錄去尋找外掛
--port=port_num, -P port_num
--host對應的mysql server埠號
--protocol={TCP|SOCKET|PIPE|MEMORY}
連線時所用的連線協議
附:
Value | Connection Protocol | Permissible Operating Systems |
---|---|---|
TCP | TCP/IP connection to local or remote server | All |
SOCKET | Unix socket file connection to local server | Unix only |
PIPE | Named-pipe connection to local or remote server | Windows only |
MEMORY | Shared-memory connection to local server | Windows only |
防止老版本的mysql client使用透過舊密碼(old_password())加密的密碼請求訪問。
除此之前,在mysql 5.6.4之前預設值為0,之後改為1。
使用--skip-secure-auth可以跳過此選項。
--socket=path, -S path
指定socket檔案。
For connections to localhost, the Unix socket file to
use, or, on Windows, the name of the named pipe to use.
--ssl*
用SSL連線
--user=user_name, -u user_name
--host對應的mysql server的使用者名稱
OPTION-FILE OPTIONS
--defaults-extra-file=file_name
在讀取全域性選項檔案之後,再使用所給定的選項檔案,file_name是檔案路徑,如果該檔案不存在或者不可被訪問,則會報錯。
--defaults-file=file_name
僅使用所給定的選項檔案,如果該檔案不存在或者不可被訪問,則會報錯。file_name是檔案路徑。
--defaults-group-suffix=str
不只讀通常的選項組,還讀其他的選項組,比如:mysqldump通常讀[client]和[mysqldump]選項組,
如果透過對這個選項的指定,mysqldump也會讀其他的選項組比如:[client_other]和[mysqldump_other]
--no-defaults
不讀任何選項檔案,用於避免因為讀取了有未知選項的選項檔案而導致程式啟動失敗。
可在讀取前生效,除了.mylogin.cnf檔案。
--print-defaults
從被提供的選項檔案中,輸出程式的名字和所有被給予的選項資訊。
Print the program name and all options that it gets from option files.
在讀取全域性選項檔案之後,再使用所給定的選項檔案,file_name是檔案路徑,如果該檔案不存在或者不可被訪問,則會報錯。
--defaults-file=file_name
僅使用所給定的選項檔案,如果該檔案不存在或者不可被訪問,則會報錯。file_name是檔案路徑。
--defaults-group-suffix=str
不只讀通常的選項組,還讀其他的選項組,比如:mysqldump通常讀[client]和[mysqldump]選項組,
如果透過對這個選項的指定,mysqldump也會讀其他的選項組比如:[client_other]和[mysqldump_other]
--no-defaults
不讀任何選項檔案,用於避免因為讀取了有未知選項的選項檔案而導致程式啟動失敗。
可在讀取前生效,除了.mylogin.cnf檔案。
--print-defaults
從被提供的選項檔案中,輸出程式的名字和所有被給予的選項資訊。
Print the program name and all options that it gets from option files.
DDL OPTIONS
--add-drop-database
在每一個CREATE DATABASE之前新增DROP DATABASE語句
這個選項通常結合--all-databases和--databases選項使用
--add-drop-table
在每一個CREATE TABLE之前新增DROP TABLE語句
--add-drop-trigger
在每一個CREATE TRIGGER之前新增DROP TRIGGER語句
--all-tablespaces, -Y
匯出全部表空間資訊
--no-create-db, -n
不會提供CREATE DATABASE語句
--no-create-info, -t
不會提供CREATE TABLE語句
--no-tablespaces, -y
不匯出任何表空間資訊
--replace
用REPLACE語句(指REPLACE INTO)代替INSERT語句
--comments, -i
在dump檔案中輸出譬如程式版本,伺服器版本,host等資訊,該選項預設可用
如果不需要這些資訊,用--skip-comments選項
--debug[=debug_options], -# [debug_options]
寫debug日誌,預設值為d:t:o,預設存放路徑為/tmp/mysqldump.trace
--debug-check
當程式執行結束後,列印除錯資訊
--debug-info
當程式執行結束後,列印除錯資訊,並且還有記憶體、CPU用量
--dump-date
預設開啟,在程式結束後,將會出現“-- Dump completed on DATE”。
如果需要關閉,則呼叫--skip-dump-date
--force, -f
當發生SQL error時繼續執行(忽略error)
--log-error=file_name
記錄警告和錯誤,透過指定要寫入的file_name,預設是不記錄
--skip-comments
不刪除譬如程式版本,伺服器版本,host等資訊
--verbose, -v
Verbose mode,輸出更多資訊
--tab=path, -T path
生成tab分隔符文字格式的檔案,
每一個被dump的表,mysqldump會建立以tbl_name.sql檔案包含CREATE TABLE語句
同時會建立一個tbl_name.txt的檔案來存放資料
此選項不能使用 --all-databases 和 --databases一起使用
而且mysqldump和mysql server需要在同一臺機器
比如 mysqldump -u -p database_name --tab=/tmp
--tz-utc
這個選項將設定時區,預設可用,若想置為不可用,則使用--skip-tz-utc
即輸出 SET TIME_ZONE='+00:00'
若無這個選項,在資料移動時,將可能不能保證不同時區的TIMESTAMP列的正確性
--xml, -X
以XML格式輸出
匯出所有資料庫中的所有表(包括結構和資料)
--databases, -B
匯出所選擇的資料庫中的所有表(包括結構和資料)
--events, -E
匯出event
--ignore-table=db_name.tbl_name
忽略指定的表
--no-data, -d
不匯出資料資訊,僅匯出表結構
--routines, -R
匯出ROUTINES(包括儲存過程和函式),需要有對mysql.proc表有SELECT許可權。
Prior to MySQL 5.6.5, this option had no effect when used together with the --xml option.
(Bug #11760384, Bug #52792)
--tables
覆蓋--databases或-B選項,指定要匯出的表名。
--triggers
匯出Triggers,預設開啟,若禁止,則新增--skip-triggers
--where='where_condition', -w 'where_condition'
匯出僅僅符合滿足where條件的行
比如:
--where="user='jimf'"
-w"userid>1"
-w"userid<1"
對於不支援事務的表,用INSERT DELAYED語句替代INSERT語句
在5.6.6版本,DELAYED插入被棄用,所以這個選項也將在未來的版本中移除。
--disable-keys, -K
對於每張表,為了dump檔案更快的匯入(INSERT)
在INSERT語句前後加上/*!40000 ALTER TABLE tbl_name DISABLE KEYS */;
和 /*!40000 ALTER TABLE tbl_name ENABLE KEYS */;
這個選項隻影響使用MyISAM儲存引擎並且沒有UNIQUE索引的表。
--extended-insert, -e
在一個INSERT ... VALUES列裡寫入多行資料,預設為開啟,--skip-extended-insert可以禁用。
--insert-ignore
用INSERT IGNORE替代INSERT語句
--opt
預設可用,是--add-drop-table、--add-locks、--create-options、--disable-keys、
--extended-insert、--lock-tables、--quick、--set-charset選項的集合。
這將使dump操作變得更快,同樣匯入時也將變得更快。--skip-opt可以禁用opt選項。
--quick, -q
這個選項對dump大表非常有用。
強制讓mysqldump從伺服器查詢出來直接輸出,而不是將他們放入快取之後再寫入。
新增LOCK TABLES與UNLOCK TABLES語句(預設可用),透過--skip-add-locks禁用該選項
--flush-logs, -F
在開始dump之前重新整理mysql server的日誌檔案
該選項需要有RELOAD許可權,如果與--all-databases選項結合使用,日誌將會在每個資料庫dump前被重新整理
如果加了--lock-all-tables、--master-data或者--single-transaction選項時,日誌只會被重新整理一次
--flush-privileges
在dump mysql資料庫之後,發出FLUSH PRIVILEGES語句
--lock-all-tables, -x
鎖住所有庫的所有表,使用該選項將自動關閉--single-transaction和--lock-tables選項
--lock-tables, -l
在dump之前鎖住所有表,透過READ LOCAL允許MyISAM表並行插入INSERT
--single-transaction比--lock-tables更好,因為沒有必要鎖住所有表
--no-autocommit
禁止自動提交,加入SET autocommit = 0語句,在INSERT執行完成之後執行COMMIT
--order-by-primary
對每個有PRIMARY KEY和UNIQUE約束的表進行排序
在匯出MyISAM表到InnoDB表時會有效,但是會大大增加匯出時間
--shared-memory-base-name=name
在windows平臺上用記憶體共享方式連線到本地mysql server,預設值是MYSQL,名字區分大小寫
--single-transaction
在dump資料前新增START TRANSACTION語句,僅適用於InnoDB表
該選項與--lock-tables不能一起使用,同時在dump很大的表時,該選項要結合--quick一起使用
完整備份一個資料庫:
shell> mysqldump db_name > backup-file.sql
裝載dump檔案到mysql server中:
shell> mysql db_name < backup-file.sql
另一種裝載dump檔案的方法:
shell> mysql -e "source /path-to-backup/backup-file.sql" db_name
mysqldump同樣非常適合於從一個mysql server複製資料到另一個
shell> mysqldump --opt db_name | mysql --host=remote_host -C db_name
可以透過一個mysqldump命令dump幾個資料庫
shell> mysqldump --databases db_name1 [db_name2 ...] > my_databases.sql
dump全部的資料庫,可以用--all-databases選項
shell> mysqldump --all-databases > all_databases.sql
對於InnoDB表,mysqldump提供一種線上備份的方式:
shell> mysqldump --all-databases --master-data --single-transaction > all_databases.sql
作者公眾號(持續更新)
在每一個CREATE DATABASE之前新增DROP DATABASE語句
這個選項通常結合--all-databases和--databases選項使用
--add-drop-table
在每一個CREATE TABLE之前新增DROP TABLE語句
--add-drop-trigger
在每一個CREATE TRIGGER之前新增DROP TRIGGER語句
--all-tablespaces, -Y
匯出全部表空間資訊
--no-create-db, -n
不會提供CREATE DATABASE語句
--no-create-info, -t
不會提供CREATE TABLE語句
--no-tablespaces, -y
不匯出任何表空間資訊
--replace
用REPLACE語句(指REPLACE INTO)代替INSERT語句
DEBUG OPTIONS
--allow-keywords
允許以關鍵字作為列名建立--comments, -i
在dump檔案中輸出譬如程式版本,伺服器版本,host等資訊,該選項預設可用
如果不需要這些資訊,用--skip-comments選項
--debug[=debug_options], -# [debug_options]
寫debug日誌,預設值為d:t:o,預設存放路徑為/tmp/mysqldump.trace
--debug-check
當程式執行結束後,列印除錯資訊
--debug-info
當程式執行結束後,列印除錯資訊,並且還有記憶體、CPU用量
--dump-date
預設開啟,在程式結束後,將會出現“-- Dump completed on DATE”。
如果需要關閉,則呼叫--skip-dump-date
--force, -f
當發生SQL error時繼續執行(忽略error)
--log-error=file_name
記錄警告和錯誤,透過指定要寫入的file_name,預設是不記錄
--skip-comments
不刪除譬如程式版本,伺服器版本,host等資訊
--verbose, -v
Verbose mode,輸出更多資訊
HELP OPTIONS
--help, -?
展示幫助資訊
--version, -V
展示版本資訊
展示幫助資訊
--version, -V
展示版本資訊
INTERNATIONALIZATION OPTIONS
--character-sets-dir=path
指定安裝了字符集的路徑
--default-character-set=charset_name
預設字符集的設定,如果沒有被指定,預設將會使用utf8,更早的版本是latin1
--no-set-names, -N
關閉--set-charset設定
與--skip-set-charset為同義
--set-charset
新增 "SET NAMES default_character_set" 到mysqldump的檔案中,預設為可用。
--skip-set-charset可將其設定為不可用
在"CHANGE MASTER TO"前新增"STOP SLAVE"語句,並且在最後新增"START SLAVE"
--delete-master-logs
在主複製結構伺服器dump操作結束後,透過PURGE BINARY LOGS來刪除二進位制日誌,這個選項將同時使--master-data選項開啟
--dump-slave[=value]
參考--master-data用法。
預設值為1,輸出"CHANGE MASTER TO"語句,若為2,則作為註釋。
--include-master-host-port
新增master server的host和master server port
比如 MASTER_HOST=[host],MASTER_PORT=[port]
--master-data[=value]
預設值為1,dump檔案會額外輸出譬如“CHANGE MASTER TO MASTER_LOG_FILE='bin-log.000001', MASTER_LOG_POS=xxxx;”的語句,
便於設定從何處讀取主server的二進位制日誌。
如果將值設定為2,“CHANGE MASTER TO”語句將成為SQL註釋,僅僅作為告知資訊。
該選項需要RELOAD許可權並且二進位制日誌可用。
如果用了--dump-slave選項,將會覆蓋--master-data選項。
該選項常用於dump master的資料,並建立slave時所用。
--set-gtid-purged=value
這個選項可以將GTID資訊寫入dump檔案,形如SET @@global.gtid_purged語句。
預設的值為AUTO。該選項在5.6.9以上可用。
生成更少的輸出資訊,是--skip-add-drop-table、--skip-add-locks、
--skip-comments、--skip-disable-keys、--skip-set-charset的集合。
--compatible=name
生成可以相容其他資料庫系統或者老版本mysql server的dump檔案
其值可以為 ansi mysql323 mysql40 postgresql oracle mssql db2 maxdb
no_key_options no_table_options no_field_options
如果同時用多個值,則透過逗號來分割他們,這些值同sql mode的值
這個選項不保證可以完全相容其他資料庫系統,僅僅是使那些使用了對應值的sql mode可以dump出更多相容性的語句。
比如--compatible=oracle並不是將資料型別對映成oracle的資料型別或者說用oracle的SQL語法。
--complete-insert, -c
用完整的INSERT語句(包含列的名字)
--create-options
在CREATE TABLE語句中新增包含所有具有mysql特性的選項
--fields-terminated-by=..., --fields-enclosed-by=..., --fields-optionally-enclosed-by=..., --fields-escaped-by=...
這些選項需和--tab選項配合使用,用法與SELECT ... INTO OUTFILE類似,用於LOAD DATA INFILE
--hex-blob
將資料型別為BINARY VARBINARY BLOB BIT的列輸出成十六進位制的格式
比如'abc'輸出為0x616263
--lines-terminated-by=...
該選項需要配合--tab選項使用,用於指定每行的分隔符,用於LOAD DATA INFILE
--quote-names, -Q
指定包裹識別符號為'`',比如針對database,table,column名字的包裹符(如`test`)
預設該選項是可用的,如果要置為不可用,則指定--skip-quote-names
--result-file=file_name, -r file_name
直接輸出到被提供的檔案,這個選項保證在windows中,換行符能夠被正確使用(將"\n"轉換成"\r\n")
指定安裝了字符集的路徑
--default-character-set=charset_name
預設字符集的設定,如果沒有被指定,預設將會使用utf8,更早的版本是latin1
--no-set-names, -N
關閉--set-charset設定
與--skip-set-charset為同義
--set-charset
新增 "SET NAMES default_character_set" 到mysqldump的檔案中,預設為可用。
--skip-set-charset可將其設定為不可用
REPLICATION OPTIONS
--apply-slave-statements在"CHANGE MASTER TO"前新增"STOP SLAVE"語句,並且在最後新增"START SLAVE"
--delete-master-logs
在主複製結構伺服器dump操作結束後,透過PURGE BINARY LOGS來刪除二進位制日誌,這個選項將同時使--master-data選項開啟
--dump-slave[=value]
參考--master-data用法。
預設值為1,輸出"CHANGE MASTER TO"語句,若為2,則作為註釋。
--include-master-host-port
新增master server的host和master server port
比如 MASTER_HOST=[host],MASTER_PORT=[port]
--master-data[=value]
預設值為1,dump檔案會額外輸出譬如“CHANGE MASTER TO MASTER_LOG_FILE='bin-log.000001', MASTER_LOG_POS=xxxx;”的語句,
便於設定從何處讀取主server的二進位制日誌。
如果將值設定為2,“CHANGE MASTER TO”語句將成為SQL註釋,僅僅作為告知資訊。
該選項需要RELOAD許可權並且二進位制日誌可用。
如果用了--dump-slave選項,將會覆蓋--master-data選項。
該選項常用於dump master的資料,並建立slave時所用。
--set-gtid-purged=value
這個選項可以將GTID資訊寫入dump檔案,形如SET @@global.gtid_purged語句。
預設的值為AUTO。該選項在5.6.9以上可用。
-
Value Meaning OFF Add no SET statement to the output. ON Add a SET statement to the output. An error occurs if GTIDs are not enabled on the server. AUTO Add a SET statement to the output if GTIDs are enabled on the server.
FORMAT OPTIONS
--compact生成更少的輸出資訊,是--skip-add-drop-table、--skip-add-locks、
--skip-comments、--skip-disable-keys、--skip-set-charset的集合。
--compatible=name
生成可以相容其他資料庫系統或者老版本mysql server的dump檔案
其值可以為 ansi mysql323 mysql40 postgresql oracle mssql db2 maxdb
no_key_options no_table_options no_field_options
如果同時用多個值,則透過逗號來分割他們,這些值同sql mode的值
這個選項不保證可以完全相容其他資料庫系統,僅僅是使那些使用了對應值的sql mode可以dump出更多相容性的語句。
比如--compatible=oracle並不是將資料型別對映成oracle的資料型別或者說用oracle的SQL語法。
--complete-insert, -c
用完整的INSERT語句(包含列的名字)
--create-options
在CREATE TABLE語句中新增包含所有具有mysql特性的選項
--fields-terminated-by=..., --fields-enclosed-by=..., --fields-optionally-enclosed-by=..., --fields-escaped-by=...
這些選項需和--tab選項配合使用,用法與SELECT ... INTO OUTFILE類似,用於LOAD DATA INFILE
--hex-blob
將資料型別為BINARY VARBINARY BLOB BIT的列輸出成十六進位制的格式
比如'abc'輸出為0x616263
--lines-terminated-by=...
該選項需要配合--tab選項使用,用於指定每行的分隔符,用於LOAD DATA INFILE
--quote-names, -Q
指定包裹識別符號為'`',比如針對database,table,column名字的包裹符(如`test`)
預設該選項是可用的,如果要置為不可用,則指定--skip-quote-names
--result-file=file_name, -r file_name
直接輸出到被提供的檔案,這個選項保證在windows中,換行符能夠被正確使用(將"\n"轉換成"\r\n")
--tab=path, -T path
生成tab分隔符文字格式的檔案,
每一個被dump的表,mysqldump會建立以tbl_name.sql檔案包含CREATE TABLE語句
同時會建立一個tbl_name.txt的檔案來存放資料
此選項不能使用 --all-databases 和 --databases一起使用
而且mysqldump和mysql server需要在同一臺機器
比如 mysqldump -u -p database_name --tab=/tmp
--tz-utc
這個選項將設定時區,預設可用,若想置為不可用,則使用--skip-tz-utc
即輸出 SET TIME_ZONE='+00:00'
若無這個選項,在資料移動時,將可能不能保證不同時區的TIMESTAMP列的正確性
--xml, -X
以XML格式輸出
Value: | XML Representation: |
---|---|
NULL (unknown value) |
<field name="column_name" xsi:nil="true" /> |
'' (empty string) |
<field name="column_name"> |
'NULL' (string value) |
<field name="column_name">NULL |
FILTERING OPTIONS
--all-databases, -A匯出所有資料庫中的所有表(包括結構和資料)
--databases, -B
匯出所選擇的資料庫中的所有表(包括結構和資料)
--events, -E
匯出event
--ignore-table=db_name.tbl_name
忽略指定的表
--no-data, -d
不匯出資料資訊,僅匯出表結構
--routines, -R
匯出ROUTINES(包括儲存過程和函式),需要有對mysql.proc表有SELECT許可權。
Prior to MySQL 5.6.5, this option had no effect when used together with the --xml option.
(Bug #11760384, Bug #52792)
--tables
覆蓋--databases或-B選項,指定要匯出的表名。
--triggers
匯出Triggers,預設開啟,若禁止,則新增--skip-triggers
--where='where_condition', -w 'where_condition'
匯出僅僅符合滿足where條件的行
比如:
--where="user='jimf'"
-w"userid>1"
-w"userid<1"
PERFORMANCE OPTIONS
--delayed-insert對於不支援事務的表,用INSERT DELAYED語句替代INSERT語句
在5.6.6版本,DELAYED插入被棄用,所以這個選項也將在未來的版本中移除。
--disable-keys, -K
對於每張表,為了dump檔案更快的匯入(INSERT)
在INSERT語句前後加上/*!40000 ALTER TABLE tbl_name DISABLE KEYS */;
和 /*!40000 ALTER TABLE tbl_name ENABLE KEYS */;
這個選項隻影響使用MyISAM儲存引擎並且沒有UNIQUE索引的表。
--extended-insert, -e
在一個INSERT ... VALUES列裡寫入多行資料,預設為開啟,--skip-extended-insert可以禁用。
--insert-ignore
用INSERT IGNORE替代INSERT語句
--opt
預設可用,是--add-drop-table、--add-locks、--create-options、--disable-keys、
--extended-insert、--lock-tables、--quick、--set-charset選項的集合。
這將使dump操作變得更快,同樣匯入時也將變得更快。--skip-opt可以禁用opt選項。
--quick, -q
這個選項對dump大表非常有用。
強制讓mysqldump從伺服器查詢出來直接輸出,而不是將他們放入快取之後再寫入。
TRANSACTIONAL OPTIONS
--add-locks新增LOCK TABLES與UNLOCK TABLES語句(預設可用),透過--skip-add-locks禁用該選項
--flush-logs, -F
在開始dump之前重新整理mysql server的日誌檔案
該選項需要有RELOAD許可權,如果與--all-databases選項結合使用,日誌將會在每個資料庫dump前被重新整理
如果加了--lock-all-tables、--master-data或者--single-transaction選項時,日誌只會被重新整理一次
--flush-privileges
在dump mysql資料庫之後,發出FLUSH PRIVILEGES語句
--lock-all-tables, -x
鎖住所有庫的所有表,使用該選項將自動關閉--single-transaction和--lock-tables選項
--lock-tables, -l
在dump之前鎖住所有表,透過READ LOCAL允許MyISAM表並行插入INSERT
--single-transaction比--lock-tables更好,因為沒有必要鎖住所有表
--no-autocommit
禁止自動提交,加入SET autocommit = 0語句,在INSERT執行完成之後執行COMMIT
--order-by-primary
對每個有PRIMARY KEY和UNIQUE約束的表進行排序
在匯出MyISAM表到InnoDB表時會有效,但是會大大增加匯出時間
--shared-memory-base-name=name
在windows平臺上用記憶體共享方式連線到本地mysql server,預設值是MYSQL,名字區分大小寫
--single-transaction
在dump資料前新增START TRANSACTION語句,僅適用於InnoDB表
該選項與--lock-tables不能一起使用,同時在dump很大的表時,該選項要結合--quick一起使用
用法簡單介紹:
完整備份一個資料庫:
shell> mysqldump db_name > backup-file.sql
裝載dump檔案到mysql server中:
shell> mysql db_name < backup-file.sql
另一種裝載dump檔案的方法:
shell> mysql -e "source /path-to-backup/backup-file.sql" db_name
mysqldump同樣非常適合於從一個mysql server複製資料到另一個
shell> mysqldump --opt db_name | mysql --host=remote_host -C db_name
可以透過一個mysqldump命令dump幾個資料庫
shell> mysqldump --databases db_name1 [db_name2 ...] > my_databases.sql
dump全部的資料庫,可以用--all-databases選項
shell> mysqldump --all-databases > all_databases.sql
對於InnoDB表,mysqldump提供一種線上備份的方式:
shell> mysqldump --all-databases --master-data --single-transaction > all_databases.sql
作者公眾號(持續更新)
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29773961/viewspace-1871861/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Mysqldump引數詳解MySql
- mysql5.6主從引數詳解MySql
- MySQL mysqldump命令的引數詳細說明MySql
- mysqldump匯出引數詳細解釋MySql
- mysqldump引數詳細說明MySql
- 【MySQL】MySQL 5.6 引數之 extra_portMySql
- Mysql配置引數詳解(一)MySql
- mysql5.6 mysqldump備份報錯MySql
- MYSQL 5.6 安裝時cmake引數MySql
- Mysqldump引數大全MySql
- MySQL mysqldump資料匯出詳解MySql
- MySQL InnoDB常見引數詳解MySql
- 【MYSQL】my.cnf引數詳解MySql
- mysqldump引數說明MySql
- mysqldump 引數說明MySql
- mysqldump引數選項MySql
- mysql之 mysqldump 備份恢復詳解MySql
- MySQL relay log 詳細引數解釋MySql
- MySQL查詢快取引數詳解MySql快取
- MySQL配置檔案mysql.ini引數詳解MySql
- mysqldump --result-file引數MySql
- mysqldump缺失-q引數導致mysql被oom幹掉MySqlOOM
- MySQL8.0新增配置引數詳解MySql
- mysql編譯引數詳解(./configure)MySql編譯
- MySQL 5.6所有系統變數(系統引數)MySql變數
- MySQL效能引數詳解 - max_connect_errorsMySqlError
- MySQL 5.6 innodb_io_capacity引數效能測試MySql
- MySQL配置檔案mysql.ini引數詳解、MySQL效能優化MySql優化
- ajax 引數詳解
- DockerFile引數詳解Docker
- dd引數詳解
- vmstat 引數詳解
- Mysql5.6主從複製-基於binlogMySql
- 詳解MySQL資料備份之mysqldump使用方法MySql
- 詳解MySQL慢日誌(下)選項引數篇MySql
- mysqldump --login-path引數使用MySql
- OGG引數詳解
- tar命令引數詳解