萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 程式設計 >  >> 資料庫 >> MySQL 教學

mysqldump 備份與還原 MySQL 資料庫完整指令大全

mysqldump 是 MySQL 官方提供的邏輯備份工具,支援將資料庫或特定資料表導出為 SQL 腳本,方便遷移、備份與還原。本文整理最常用的備份與還原指令,並說明壓縮、大數據量優化技巧。

基本備份語法

# 備份單一資料庫
mysqldump -u 用戶名 -p 密碼 資料庫名 > 備份檔名.sql

# 例:mysqldump -u root -p mydb > mydb_backup.sql

大數據量備份:搭配 gzip 即時壓縮

避免先生成巨大 SQL 再壓縮,直接管道傳輸至 gzip,節省磁碟空間與 I/O 時間:

mysqldump -u 用戶名 -p 密碼 資料庫名 | gzip > 備份檔名.sql.gz

資料還原指令

# 從純 SQL 檔還原
mysql -u 用戶名 -p 密碼 資料庫名 < 備份檔名.sql

# 從 gzip 壓縮檔直接還原(解壓並管道導入)
gzip < 備份檔名.sql.gz | mysql -u 用戶名 -p 密碼 資料庫名

進階常用參數速查

參數說明
--single-transactionInnoDB 熱備份必加,確保一致性不鎖表
--routines / -R導出存儲過程與函數
--triggers導出觸發器
--events導出事件調度器
--hex-blob二進位欄位(BLOB/BINARY)以十六進位導出
--no-data / -d僅導出結構(不含資料)
--no-create-info / -t僅導出資料(不含 CREATE TABLE)
--add-drop-table每個 CREATE TABLE 前加 DROP TABLE IF EXISTS
--quick / -q逐行讀取導出,不緩存整張表到記憶體
--extended-insert多行合併 INSERT(預設開啟),導入更快

實用場景範例

  • 遷移資料庫到新伺服器:mysqldump -h source_host -u user -p db | mysql -h target_host -u user -p db
  • 僅備份特定資料表:mysqldump -u user -p db table1 table2 > tables.sql
  • 只導出結構供開發環境建表:mysqldump -u user -p --no-data db > schema.sql

提示:生產環境建議建立專用備份帳號,僅授予 SELECT、LOCK TABLES、SHOW VIEW、EVENT、TRIGGER 權限,避免使用 root 帳號。

copyright © 萬盛學電腦網 all rights reserved