首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> MySQL 資料庫 >> MySQL 綜合教學

MySQL 資料庫備份:檔案級直備與 mysqldump 官方工具對比

     編輯:MySQL 綜合教學

一、檔案級快速備份 (非官方驗證)

MySQL 資料庫實際以目錄與檔案形式儲存於 data 目錄下。若兩台主機 MySQL 版本、架構相同,可直接複製資料庫對應子目錄完成遷移。

操作步驟

  1. 停止兩側 MySQL 服務 (確保資料一致性)。
  2. 於主機 A 找到 data/TestA 目錄完整複製至主機 B 的 data/ 下。
  3. 啟動主機 B MySQL,透過 phpMyAdmin 驗證資料庫已出現且可正常查詢修改。

優點:速度極快、無需額外工具。缺點:跨版本、跨架構 (如 32/64 位元、不同 OS) 可能失效,且需停機。

二、官方標準備份工具:mysqldump

語法:mysqldump [OPTIONS] database [tables]。若不指定資料表則導出整個資料庫。

常用參數速查表

參數說明
--opt啟用 --quick --add-drop-table --add-locks --extended-insert --lock-tables,產生最快匯入效能。
--quick不緩衝查詢結果直接輸出,適合大資料表。
--add-drop-table每個 CREATE TABLE 前加上 DROP TABLE IF EXISTS,避免匯入報錯。
--extended-insert使用多行 INSERT 語法,減少檔案體積與匯入時間。
--lock-tables備份前鎖定所有資料表,確保一致性。
--compress客戶端與伺服器傳輸壓縮,適合遠端備份。
-h, --host指定遠端主機。
-u, --user / -p, --password連線認證。

實戰範例

# 完整備份並壓縮
mysqldump --opt mydb | gzip > mydb_$(date +%F).sql.gz

# 遠端直接同步 (無中間檔案)
mysqladmin -h remote_host create mydb
mysqldump --opt mydb | mysql -h remote_host -C mydb

# 只導出結構
mysqldump --no-data mydb > structure.sql

# 只導出資料
mysqldump --no-create-info mydb > data.sql

還原方式

mysqladmin create target_db
mysql target_db < backup-file.sql
# 或
zcat backup.gz | mysql target_db

總結建議

  • 同架構、同版本、可停機:檔案級複製最快。
  • 異構遷移、線上熱備、跨版本升級:必須使用 mysqldump。
  • 大型資料庫建議加上 --quick --single-transaction (InnoDB) 避免長時間鎖表。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved