日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysqldump 命令参数大全

發布時間:2024/1/1 数据库 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysqldump 命令参数大全 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

??mysqldump 是一個數據庫備份程序。
??mysqldump 客戶端執行邏輯備份,生成一組 SQL 語句,可以執行這些語句來重現原始數據庫對象定義和表數據。它導出一個或多個 MySQL 數據庫進行備份或遷移到另一個 SQL server。mysqldump 命令還可以生成 CSV、其他分隔文本或 XML 格式的輸出。
??本文對其常用參數總結如下(mysql 版本是 5.7),用戶也可以通過 “man mysqldump” 或 “mysqldump --help” 查看其全面的用法。

--host=host_name, -h host_name MySQL 數據庫主機地址,默認為 localhost。 示例:mysqldump -uroot -p --host=localhost --all-databases--port=port_num, -P port_num 連接數據庫端口號--user=user_name, -u user_name 指定連接數據庫的用戶名。--password[=password], -p[password] 連接數據庫的密碼--all-databases, -A 導出全部數據庫的全部表。示例:mysqldump -uroot -p --all-databases--databases, -B 導出幾個數據庫。參數后面所有名字參量都被看作數據庫名。 示例:mysqldump -uroot -p --databases test mysql--single-transaction 該選項在導出數據之前,設置事務隔離模式為 REPEATABLE READ,并提交一個 START TRANSACTION SQL 語句,BEGIN 不會阻塞任何應用程序且能保證導出時數據庫的一致性狀態。 它只適用于 InnoDB。 本選項和 --lock-tables 選項是互斥的,因為 LOCK TABLES 會使任何掛起的事務隱含提交。 要想導出大表的話,應結合使用 --quick 選項。 示例:mysqldump -uroot -p --host=localhost --all-databases --single-transaction--tables 覆蓋 --databases 或 -B 參數,指定需要導出的表名。 示例:mysqldump -uroot -p --host=localhost --databases test --tables test--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 --skip-add-drop-table (取消drop語句)--add-locks 在每個表導出之前增加 LOCK TABLES 并且之后 UNLOCK TABLES。 默認為打開狀態,使用 --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=dir_name 字符集文件的目錄。 示例:mysqldump -uroot -p --all-databases --character-sets-dir=/usr/local/mysql/share/mysql/charsets--comments, -i 附加注釋信息,默認為打開,可以用 --skip-comments 取消。 示例:mysqldump -uroot -p --all-databases (默認記錄注釋); mysqldump -uroot -p --all-databases --skip-comments (取消注釋)--compatible=name 導出的數據將和其它數據庫或舊版本的 MySQL 相兼容。 值可以為 ansi、mysql323、mysql40、postgresql、oracle、mssql、db2、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 在 CREATE TABLE 語句中包括所有 MySQL 特性選項(默認為打開狀態)。 示例:mysqldump -uroot -p --all-databases--debug[=debug_options], -# [debug_options] 輸出 debug 信息,用于調試。默認值為:d:t:o,/tmp/mysqldump.trace。 示例:mysqldump -uroot -p --all-databases --debug; mysqldump -uroot -p --all-databases --debug=” d:t:o,/tmp/debug.trace”--debug-check 程序退出時,打印一些調試信息。 示例:mysqldump -uroot -p --all-databases --debug-check--debug-info 程序退出時,打印調試信息和內存、CPU 使用數據。 示例:mysqldump -uroot -p --all-databases --debug-info--default-character-set 設置默認字符集,默認值為 utf8。 示例:mysqldump -uroot -p --all-databases --default-character-set=latin1--delete-master-logs master 備份后刪除日志。這個參數將自動激活 --master-data。 示例:mysqldump -uroot -p --all-databases --delete-master-logs--disable-keys, -K 對于每個表,在 INSERT 語句前后使用 /*!40000 ALTER TABLE tbl_name DISABLE KEYS */;/*!40000 ALTER TABLE tbl_name ENABLE KEYS */;。 這樣可以更快地導入 dump 出來的文件,因為它是在插入所有行后創建索引。該選項只適合 MyISAM 表,默認為打開狀態。 示例:mysqldump -uroot -p --all-databases --dump-slave[=value] 該選項將導致主的 binlog 位置和文件名追加到導出數據的文件中。 設置為 1 時,將會以 CHANGE MASTER 命令輸出到數據文件;設置為 2 時,在命令前增加說明信息。 該選項將會打開--lock-all-tables,除非 --single-transaction 被指定。 該選項會自動關閉 --lock-tables 選項。默認值為0。 示例:mysqldump -uroot -p --all-databases --dump-slave=1--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=..., --fields-enclosed-by=..., --fields-optionally-enclosed-by=..., --fields-escaped-by=... 這些選項和 --tab 選項一起使用,和 LOAD DATA INFILE 的 FIELDS 語法類似。 --fields-terminated-by 列以指定符合分隔。 --fields-enclosed-by 輸出文件中的各個字段用指定字符包裹。 --fields-optionally-enclosed-by 輸出文件中的各個字段用給定字符選擇性包裹。 --fields-escaped-by 輸出文件中的各個字段忽略給定字符。 不能用于 --databases 和 --all-databases 選項。 示例:mysqldump -uroot -p test test --tab=”/home/mysql” --fields-terminated-by=”#” --fields-enclosed-by=”#” --fields-optionally-enclosed-by=”#” --fields-escaped-by=”#”--flush-logs, -F 開始導出之前刷新日志。 請注意:假如一次導出多個數據庫(使用選項 --databases 或者 --all-databases),將會逐個數據庫刷新日志。 當使用 --lock-all-tables 或者 --master-data 時,只刷新一次日志,相應的所有表同時被加上讀鎖。 因此,如果你想導出操作和刷新日志操作發生在同一時刻,應該將 --flush-logs 和 --lock-all-tables,--master-data 一起使用,或者 --flush-logs 和 --single-transaction 一起使用。 示例:mysqldump -uroot -p --all-databases --flush-logs--flush-privileges 在導出 mysql 數據庫之后,發出一條 FLUSH PRIVILEGES 語句。 為了正確恢復,該選項應該用于導出 mysql 數據庫和依賴 mysql 數據庫數據的任何時候。 示例:mysqldump -uroot -p --all-databases --flush-privileges--force, -f 在導出過程中忽略出現的 SQL 錯誤。 示例:mysqldump -uroot -p --all-databases --force--help, -? 顯示幫助信息并退出。示例:mysqldump --help--hex-blob 使用十六進制格式導出二進制字段。如果有二進制數據就必須使用該選項。 影響到的字段類型有BINARY、VARBINARY、BLOB。 示例:mysqldump -uroot -p --all-databases --hex-blob--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,--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--master-data 該選項將 binlog 的位置和文件名追加到輸出文件中。 如果為 1,將會輸出 CHANGE MASTER 命令; 如果為 2,輸出的 CHANGE MASTER 命令前添加注釋信息。 該選項將打開 --lock-all-tables 選項,除非 --single-transaction 也被指定 (在這種情況下,全局讀鎖在開始導出時獲得很短的時間; 其他內容參考 --single-transaction 選項)。 該選項自動關閉 --lock-tables選項。 示例:mysqldump -uroot -p --host=localhost --all-databases --master-data=1max_allowed_packet 客戶端/服務器通信的最大 buffer size。默認值為 24MB,最大值為 1GB。 示例:mysqldump -uroot -p --host=localhost --all-databases max_allowed_packet=10240net_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 關閉 --set-charset 設置,等同于 --skip-set-charset。 示例:mysqldump -uroot -p --host=localhost --all-databases --no-set-names--opt 等同于 --add-drop-table --add-locks --create-options --disable-keys --extended-insert --lock-tables --quick --set-charset。 該選項默認開啟,可以用 --skip-opt 禁用。 示例:mysqldump -uroot -p --host=localhost --all-databases --opt--skip-opt 禁用 --opt 選項。 示例:mysqldump -uroot -p --host=localhost --all-databases --skip-opt--order-by-primary 按主鍵導出每個表的記錄,或者按照第一個唯一鍵,對每個表的記錄進行排序。 在導出 MyISAM 表到 InnoDB 表時有用,但會使得導出工作花費很長時間。 示例:mysqldump -uroot -p --host=localhost --all-databases --order-by-primary--pipe, -W 在 windows 系統,使用命名管道連接 mysql。該選項只適用于服務器支持命名管道連接的情況。 示例:mysqldump -uroot -p --host=localhost --all-databases --pipe--protocol={TCP|SOCKET|PIPE|MEMORY} 使用的連接協議,包括: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=file_name, -r file_name 直接輸出到指定文件中。該選項應該用在使用回車換行的系統上(例如: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--dump-date 將導出時間添加到輸出文件中。默認為打開狀態,使用 --skip-dump-date 關閉選項。 示例:mysqldump -uroot -p --host=localhost --all-databases; mysqldump -uroot -p --host=localhost --all-databases --skip-dump-date--socket, -S 指定連接 mysql 的 socket 文件位置,默認路徑 /tmp/mysql.sock。 示例:mysqldump -uroot -p --host=localhost --all-databases --socket=/tmp/mysqld.sock--tab=dir_name, -T dir_name 為每個表在給定路徑創建 tab 分割的文本文件。 注意:僅僅用于 mysqldump 和 mysqld 服務器運行在相同機器上。 示例:mysqldump -uroot -p --host=localhost test test --tab="/home/mysql"--where='where_condition', -w 'where_condition' 只轉儲給定的 WHERE 條件選擇的記錄。 請注意如果條件包含命令解釋符專用空格或字符,一定要將條件引用起來。 示例:mysqldump -uroot -p --host=localhost --all-databases --where=” user=’root’”--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--verbose, -v 輸出多種平臺信息。--version, -V 輸出 mysqldump 版本信息并退出。--xml, -X 導出 XML 格式。 示例:mysqldump -uroot -p --host=localhost --all-databases --xml--set-gtid-purged=value 該選項通過是否添加 SET @@global.gtid_purged 語句來控制是否向導出文件中寫入全局事務ID(GTID)。 這個選項還可能導致在輸出中寫入一條語句,該語句在重新加載轉儲文件時禁用二進制日志記錄。 該選項的值可能為:OFF、ON、AUTO。默認值為 AUTO。 各項取值含義如下所示: OFF:不向輸出文件中添加 SET 命令(跳過導 gtid); ON:向輸出文件中添加 SET 命令。如果服務端不支持 GTIDs 會報錯; AUTO:如果服務端支持 GTIDs,會向輸出文件中添加 SET 命令。
文章參考:
  • Mysqldump參數大全(參數來源于mysql5.5.19源碼)

總結

以上是生活随笔為你收集整理的mysqldump 命令参数大全的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。