首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

MySQL 資料匯出入神器:mysqldump 完整參數詳解

     編輯:MySQL 資料庫相關知識

基本用法

shell> mysqldump [OPTIONS] database [tables]

若不指定資料表,整個資料庫將被匯出。執行 mysqldump --help 可查看當前版本支援的所有選項。

注意:未使用 --quick 或 --opt 時,mysqldump 會將整個結果集載入記憶體,匯出大型資料庫可能導致記憶體耗盡。

常用選項分類速查

選項說明
--add-locks每張表匯出前加 LOCK TABLES,匯入時加速插入。
--add-drop-table每個 CREATE TABLE 前加 DROP TABLE IF EXISTS。
-c, --complete-insert使用完整 INSERT 語法(含欄位名),便於閱讀與遷移。
-C, --compress客戶端與伺服器均支援壓縮時,壓縮傳輸資料。
--delayed使用 INSERT DELAYED 插入資料。
-e, --extended-insert多行 INSERT 語法,產生更緊湊、更快的匯入檔。
--help顯示幫助並退出。
-F, --flush-logs匯出前刷新 MySQL 伺服器日誌檔。
-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(資料)檔,需在 mysqld 同一主機執行。

匯出與匯入實戰範例

匯出單一資料庫(含結構與資料,高效能模式)

mysqldump --opt -u root -p mydb > mydb_backup.sql

僅匯出結構

mysqldump --no-data -u root -p mydb > mydb_structure.sql

匯入資料

mysql -u root -p mydb < mydb_backup.sql

進階技巧

  • 搭配 gzip 壓縮:mysqldump --opt -u root -p mydb | gzip > mydb_backup.sql.gz
  • 定時備份可寫入 Shell 腳本並配合 crontab 執行。
  • 跨版本遷移時,建議加上 --compatible=mysql40 等相容性選項。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved