基本語法:mysqldump [OPTIONS] database [tables]。未指定資料表則匯出整個資料庫。
執行 mysqldump --help 可查看版本支援選項。注意:無 --quick 或 --opt 時,mysqldump 會將整個結果集載入記憶體,大型資料庫可能導致記憶體不足。
| 參數 | 說明 |
|---|---|
--add-locks | 每張表匯出前加 LOCK TABLES、後加 UNLOCK TABLES,加速匯入 |
--add-drop-table | 每個 CREATE 前加 DROP TABLE |
--allow-keywords | 允許關鍵字作為欄位名(加表名前綴) |
-c, --complete-insert | 使用完整 INSERT(含欄位名) |
-C, --compress | 客戶端與伺服器均支援時壓縮傳輸 |
--delayed | 使用 INSERT DELAYED |
-e, --extended-insert | 多列 INSERT 語法,更緊湊快速 |
-F, --flush-logs | 匯出前刷新伺服器日誌 |
-f, --force | 發生 SQL 錯誤仍繼續 |
-h, --host | 指定遠端主機(預設 localhost) |
-l, --lock-tables | 匯出前鎖定所有表 |
-t, --no-create-info | 不輸出 CREATE TABLE |
-d, --no-data | 不輸出資料列,僅結構 |
--opt | 等同 --quick --add-drop-table --add-locks --extended-insert --lock-tables,最快匯出組合 |
-p, --password | 指定密碼(不帶值則提示輸入) |
-P, --port | TCP/IP 埠號(非 localhost 時使用) |
-q, --quick | 不緩衝查詢,直接輸出 stdout |
-S, --socket | 本地連線 socket 檔案路徑 |
-T, --tab | 每表產生 .sql (結構) 與 .txt (資料) 檔案,需同機器運行 |
-u, --user | 連線使用者名稱 |
-w, --where | 條件過濾匯出資料(需加引號) |
mysqldump --opt database > backup-file.sql
mysqldump --opt database | mysql --host=remote-host -C database
mysqladmin create target_db_name
mysql target_db_name < backup-file.sql
mysqldump 輸出標準 SQL 陳述式,配合 mysql 客戶端工具即可輕鬆完成異機遷移與備份還原。