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

mysqldump 命令詳解:MySQL 資料備份與匯出完全指南

     編輯:MySQL 資料庫相關知識

為何需要匯出資料?

資料備份、跨環境遷移、版本升級、共享給合作夥伴……種種情境都仰賴可靠的匯出機制。mysqldump 是 MySQL 官方提供的邏輯備份工具,能將整個資料庫或特定資料表轉為包含 CREATE TABLE 與 INSERT 陳述式的 SQL 腳本,支援跨版本、跨平台還原,是最通用的備份手段。

基本語法與常見範例

mysqldump [選項] -u 用戶 -p 資料庫名稱 [資料表名稱...] > 輸出檔.sql
  • 備份整庫:mysqldump -u root -p Meet_A_Geek > MeetAGeek_Dump_File.txt
  • 備份單表:mysqldump -u root -p Meet_A_Geek Orders > MeetAGeek_Orders.txt
  • 條件匯出:mysqldump -u root -p --where="Order_ID > 2000" Meet_A_Geek Orders > Special_Dump.txt

關鍵參數速查表

參數說明
--add-drop-table每個 CREATE TABLE 前加 DROP TABLE IF EXISTS,避免還原衝突
--add-locks在 INSERT 區塊加上 LOCK/UNLOCK TABLES,防止併發衝突
-c, --complete-insertINSERT 陳述式包含欄位名,利於異構匯入
--delayed-insert使用 INSERT DELAYED 降低鎖定影響
-F, --flush-logs備份前刷新二進制日誌,配合增量備份
-f, --force發生錯誤仍繼續執行
--full在 CREATE TABLE 保留完整選項
-l, --lock-tables備份期間鎖定資料表(MyISAM 適用)
-t, --no-create-info僅匯出資料,不含 DDL
-d, --no-data僅匯出結構,不含資料
--opt啟用一組預設優化參數(含上述多項),預設開啟
-q, --quick逐行讀取寫入,不佔用大量記憶體,大表必備
-T, --tab=路徑產生兩檔:.sql(結構)與 .txt(資料),需目錄存在且有權限
-w, --where="條件"依 WHERE 條件篩選資料

進階應用:產生 CSV 供 Excel 開啟

mysqldump -u root -p --where="Order_Date >= '2004-01-01'" \
  --tab=/home/mark --no-create-info \
  --fields-terminated-by=, Meet_A_Geek Orders

輸出的 Orders.txt 即為逗號分隔的純資料檔,直接可用 Excel 開啟。

補充:SELECT INTO OUTFILE

若需更靈活的格式控制(如多表 JOIN、自訂欄位順序),可在 MySQL 客戶端直接執行:

SELECT * INTO OUTFILE '/home/mark/Orders.txt'
FIELDS TERMINATED BY ',' 
FROM Orders WHERE Order_Date >= '2004-01-01';

此指令將查詢結果直接導向檔案,亦可作為簡易報表產生器。

名詞解析:Schema(綱要)

以資料定義語言(DDL)完整描述資料庫結構的一組陳述式集合,包含資料表、欄位、索引、約束等定義。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved