mysqldump備份數據庫

mysqldump 用於導出mysql數據庫的結構和數據。

Usage: mysqldump [OPTIONS] database [tables] #導表

OR     mysqldump [OPTIONS] --databases [OPTIONS] DB1 [DB2 DB3...] #導庫

OR     mysqldump [OPTIONS] --all-databases [OPTIONS]


默認選項按照給定順序從以下文件讀取:

/etc/my.cnf /etc/mysql/my.cnf /u01/app/mysql/my.cnf ~/.my.cnf 

The following groups are read: mysqldump client

The following options may be given as the first argument:

--print-defaults        打印程序參數列表並退出。

--no-defaults           不要從任何選項文件讀取默認選項。

--defaults-file=#       只讀從給定文件的默認選項 #.

--defaults-extra-file=# 讀取全局文件後讀取此文件.

  -A, --all-databases 導出所有數據庫.這和 --databases 選擇所有數據庫相同

  -Y, --all-tablespaces 導出所有表空間

  -y, --no-tablespaces  不轉儲任何表空間信息.

  --add-drop-database 在每次創建之前添加一個DROP DATABASE.

  --add-drop-table    在每次創建之前添加DROP TABLE.(默認開啓,使用--skip-add-drop-table將其禁用)

  --add-locks         在INSERT語句周圍添加鎖定.(默認開啓,使用--skip-add-locks 將其禁用)

  --allow-keywords    允許創建作爲關鍵字的列名稱.

  --apply-slave-statements  在“CHANGE MASTER”和“START SLAVE”之前添加“STOP SLAVE”到轉儲底部。

  --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  使用完整的insert語句

  -C, --compress      在服務器/客戶端協議中使用壓縮。

  -a, --create-options 包括所有MySQL特定的創建選項(默認爲on;使用--skip-create-options禁用)。

  -B, --databases     轉儲幾個數據庫。所有名稱參數都被視爲數據庫名稱。

  -#, --debug[=#]     這是一個非調試版本。 捕捉這個並退出。

  --debug-check       檢查內存並在退出時打開文件使用情況。

  --debug-info        在退出時打印一些調試信息。

  --default-character-set=name 設置默認字符集。

  --delayed-insert    使用INSERT DELAYED插入行。

  --delete-master-logs 在備份後刪除主服務器上的日誌。 這會自動啓用--master-data。

  -K, --disable-keys  '/*!40000 ALTER TABLE tb_name DISABLE KEYS */; and

                      '/*!40000 ALTER TABLE tb_name ENABLE KEYS */; will be put

                      in the output.

  --dump-slave[=#]  (默認爲on;使用--skip-disable-keys禁用。)這將導致主站的二進制日誌位置和文件名附加到轉儲數據輸出。 將值設置爲1,將在轉儲數據輸出中作爲CHANGE MASTER命令打印; 如果等於2,該命令將以註釋符號作爲前綴。 該選項將打開--lock-all-tables,除非指定了--single-transaction(在這種情況下,全局讀鎖定只在轉儲開始時進行一小段時間 - 不要忘記閱讀 --single-transaction下面)。 在所有情況下,對日誌的任何操作將發生在dump的確切時刻.Option會自動關閉 - 鎖定表。

  -E, --events        轉儲事件。

  -e, --extended-insert 使用包含多個VALUES列表的多行INSERT語法(默認爲on;使用--skip-extended-insert禁用)。

  --fields-terminated-by=name 終止符

  --fields-enclosed-by=name 分隔符

  --fields-optionally-enclosed-by=name 字段可選分隔符       

  --fields-escaped-by=name 轉義字符               

  -F, --flush-logs    在開始轉儲之前,刷新服務器中的日誌文件。 請注意,如果一次轉儲許多數據庫(使用選項--databases =或--all-databases),則將爲每個轉儲的數據庫刷新日誌。 例外情況:使用--lock-all-tables或--master-data:在這種情況下,日誌將只刷新一次,對應於所有表被鎖定的時刻。 所以如果你想要你的轉儲和日誌刷新發生在同一個確切的時刻,你應該使用--lock-all-tables或--master-data和--flush-logs。

  --flush-privileges  在轉儲mysql數據庫後發出FLUSH PRIVILEGES語句。 該選項應該在任何時候使用轉儲包含mysql數據庫和任何其他數據庫依賴mysql數據庫中的數據進行正確還原。

  -f, --force         即使錯誤也繼續執行

  -?, --help          查看幫助信息

  --hex-blob          以十六進制轉儲二進制文件

  -h, --host=name     連接主機

  --ignore-table=name 不備份指定的表。要指定要忽略的多個表,請多次使用指令,每個表使用一次。每個表必須同時指定數據庫和表名,例如, - ignore-table = database.table。

  --include-master-host-port 在使用--dump-slave生成的轉儲中添加'MASTER_HOST = <host>,MASTER_PORT = <port>'到'CHANGE MASTER TO ..'。

  --insert-ignore     使用INSERT IGNORE插入行。

  --lines-terminated-by=name 行終止符                   

  -x, --lock-all-tables 備份期間鎖定所有表,通過添加全局鎖來實現。會自動關閉--single-transaction 和--lock-tables off.

  -l, --lock-tables   鎖定所有表(默認開啓,使用--skip-lock-tables禁用)

  --log-error=name   錯誤日誌文件

  --master-data[=#]   這將導致二進制日誌位置和文件名附加到輸出。 如果等於1,將其作爲CHANGE MASTER命令打印; 如果等於2,該命令將以註釋符號作爲前綴。 此選項將打開--lock-all-tables,除非指定了--single-transaction(在這種情況下,全局讀鎖定只在轉儲開始時進行很短的時間;不要忘記閱讀 --single-transaction)。 在所有情況下,對日誌的任何操作都將發生在轉儲的確切時刻。 選項自動關閉 --lock-tables。

  --max-allowed-packet=# 發送到服務器或從服務器接收的最大包長度。

  --net-buffer-length=# 用於TCP / IP和套接字通信的緩衝區大小。

  --no-autocommit     使用autocommit / commit語句來封裝表。

  -n, --no-create-db  不使用CREATE DATABASE ... IF EXISTS語句,如果給出--all-databases或--databases,則通常爲每個轉儲的數據庫輸出。

  -t, --no-create-info 不寫表的信息

  -d, --no-data       不導出數據

  -N, --no-set-names  不設置字符集 ,與--skip-set-charset一樣

  --opt               與--add-drop-table, --add-locks, --create-options,--quick, --extended-insert, --lock-tables, --set-charset,and --disable-keys. Enabled by default, disable with--skip-opt一樣.

  --order-by-primary  如果存在主鍵或者唯一鍵,則按此類鍵進行排序。在轉儲從MyISAM到InnoDB表會很有用,但會使轉儲本身需要更長的時間。

  -p, --password[=name] 密碼

  -P, --port=#        連接端口

  --protocol=name     連接協議 (tcp, socket, pipe,

                      memory).

  -q, --quick         不要緩衝查詢,直接轉儲到stdout(默認爲on;使用--skip-quick禁用)。

  -Q, --quote-names   引號表和帶有反引號(`)的列名(默認爲on;使用--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”添加到輸出。 (默認爲on;使用--skip-set-charset禁用)。

  --single-transaction 通過在單個事務中轉儲所有表來創建一致的快照。 僅適用於存儲在支持多版本的存儲引擎中的表(當前只有InnoDB); 轉儲不保證對於其他存儲引擎是一致的。 當單事務轉儲正在進行時,爲了確保有效的轉儲文件(正確的表內容和二進制日誌位置),沒有其他連接應該使用以下語句:ALTER TABLE,DROP TABLE,RENAME TABLE,TRUNCATE TABLE,as 一致的快照不與它們隔離。 選項自動關閉 --lock-tables.

  --dump-date         將轉儲日期放在輸出結尾。(默認開啓; 使用 --skip-dump-date禁用.)

  --skip-opt          禁用 --opt. Disables --add-drop-table, --add-locks,

                      --create-options, --quick, --extended-insert,

                      --lock-tables, --set-charset, and --disable-keys.

  -S, --socket=name   連接用的socket

  -T, --tab=name      爲每個給定路徑的表創建制表符分隔的文本文件。 (創建.sql和.txt文件。)注意:這僅在mysqldump在與mysql服務器相同的機器上運行時纔有效。

  --tables            覆蓋選項--databases(-B)。

  --triggers          轉儲每個轉儲表的觸發器.(默認爲on;使用--skip-triggers禁用)。

  --tz-utc           SET TIME_ZONE =轉儲頂部的'+ 00:00',以便當服務器在不同時區中的數據在不同時區的服務器之間移動時允許轉儲TIMESTAMP數據(默認爲on; use --skip- tz-utc禁用。)

  -u, --user=name     用戶名.

  -v, --verbose       打印各個階段的信息.

  -V, --version       輸出版本信息並退出。

  -w, --where=name    導出查詢條件中的數據

  -X, --xml           使用XML格式

  --plugin-dir=name   客戶端插件目錄

  --default-auth=name 使用的默認認證客戶端插件。


Variables (--variable-name=value)

and boolean options {FALSE|TRUE}  Value (after reading options)

--------------------------------- ----------------------------------------

all-databases                     FALSE

all-tablespaces                   FALSE

no-tablespaces                    FALSE

add-drop-database                 FALSE

add-drop-table                    TRUE

add-locks                         TRUE

allow-keywords                    FALSE

apply-slave-statements            FALSE

character-sets-dir                (No default value)

comments                          TRUE

compatible                        (No default value)

compact                           FALSE

complete-insert                   FALSE

compress                          FALSE

create-options                    TRUE

databases                         FALSE

debug-check                       FALSE

debug-info                        FALSE

default-character-set             utf8

delayed-insert                    FALSE

delete-master-logs                FALSE

disable-keys                      TRUE

dump-slave                        0

events                            FALSE

extended-insert                   TRUE

fields-terminated-by              (No default value)

fields-enclosed-by                (No default value)

fields-optionally-enclosed-by     (No default value)

fields-escaped-by                 (No default value)

flush-logs                        FALSE

flush-privileges                  FALSE

force                             FALSE

hex-blob                          FALSE

host                              (No default value)

include-master-host-port          FALSE

insert-ignore                     FALSE

lines-terminated-by               (No default value)

lock-all-tables                   FALSE

lock-tables                       TRUE

log-error                         (No default value)

master-data                       0

max-allowed-packet                25165824

net-buffer-length                 1046528

no-autocommit                     FALSE

no-create-db                      FALSE

no-create-info                    FALSE

no-data                           FALSE

order-by-primary                  FALSE

port                              0

quick                             TRUE

quote-names                       TRUE

replace                           FALSE

routines                          FALSE

set-charset                       TRUE

single-transaction                FALSE

dump-date                         TRUE

socket                            (No default value)

tab                               (No default value)

triggers                          TRUE

tz-utc                            TRUE

user                              (No default value)

verbose                           FALSE

where                             (No default value)

plugin-dir                        (No default value)

default-auth                      (No default value)

-----------------------------------------------------------------------------------------------------

1、導單表

mysqldump -uroot -p mysql user;

2、導單庫

mysqldump -uroot -phwj3509 --databases hwj >test.sql

3、導多表

mysqldump -uroot -p mysql user proc>test.sql

4、導多庫

mysqldump -uroot -p --databases hwj 51vj>test.sql


5、增量備份

mysqldump下實現增量備份,其實是靠mysqldump全備和binlog日誌實現,通過在mysqldump命令中添加--flush-logs來生成新的日誌。恢復時使用mysqlbinlog進行恢復。

mysqldump -uroot -phwj3509 --single-transaction --flush-logs --master-data=2 --all_databases> backup.sql;


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章