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

mysqldump 與 mysql 命令行導出/導入完整指南:結構、資料、單表、全庫、壓縮、遠程與自動化腳本

     編輯:MySQL 綜合教學

mysqldump 是 MySQL 邏輯備份/遷移的標準工具。本文系統整理常用參數組合:全庫/單表、結構/資料、壓縮輸出、遠程導出、導入策略、source 指令與自動化腳本範例。

核心導出命令模板

場景命令
全庫(結構+資料)mysqldump -u root -p dbname > dbname.sql
單表(結構+資料)mysqldump -u root -p dbname tbl1 tbl2 > tables.sql
全庫僅結構mysqldump -u root -p -d dbname > schema.sql
單表僅結構mysqldump -u root -p -d dbname tbl1 > tbl1_schema.sql
壓縮輸出(管道 gzip)mysqldump -u root -p dbname | gzip > dbname.sql.gz
遠程主機導出mysqldump -h 10.0.0.1 -u root -p dbname > dbname.sql
含存儲程序/觸發器/事件mysqldump -u root -p -R -E --triggers dbname > full.sql
單交易一致性備份(InnoDB)mysqldump -u root -p --single-transaction dbname > consistent.sql

導入策略

方式一:mysql 命令重導向(最常用)

mysql -u root -p dbname < dbname.sql

方式二:source 指令(在 mysql 客戶端內)

mysql -u root -p
USE dbname;
SOURCE /path/to/dbname.sql;

方式三:壓縮檔直接導入

gunzip < dbname.sql.gz | mysql -u root -p dbname

常用參數速查

  • -u/--user、-p/--password、-h/--host、-P/--port
  • -d/--no-data:僅結構
  • -t/--no-create-info:僅資料
  • -R/--routines:存儲程序/函數
  • -E/--events:事件調度器
  • --triggers:觸發器(預設開啟)
  • --single-transaction:InnoDB 熱備份一致性
  • --master-data=2:附加 CHANGE MASTER TO 位點(從庫搭建)
  • --hex-blob:二進位欄位十六進位導出
  • --set-gtid-purged=OFF:GTID 環境避免污染

自動化備份腳本範例

#!/bin/bash
# daily_backup.sh
DATE=$(date +%F)
DB="prod_db"
OUT="/backup/mysql/${DB}_${DATE}.sql.gz"

mysqldump -u backup_user -p'${BK_PASS}' \
  --single-transaction -R -E --triggers \
  --master-data=2 ${DB} | gzip > ${OUT}

# 保留 7 天
find /backup/mysql -name "${DB}_*.sql.gz" -mtime +7 -delete

遷移實戰建議

  1. 先導結構(-d),目標庫建表驗證。
  2. 再導資料(-t),大表分批或用 --where 分片。
  3. 3. 導入後跑 ANALYZE TABLE 更新統計資訊。
  4. 核對筆數、檢查碼、關鍵業務查詢。

熟練 mysqldump 參數組合,備份遷移不再手忙腳亂。

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