萬盛學電腦網

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

mysqldump 備份還原全攻略:結構/數據/單表/全庫/遠程傳輸/增量策略

核心語法

mysqldump -u user -p [db_name] [tbl_name...] > dump.sql

常用場景

備份單庫結構+數據

mysqldump -u root -p mydatabase > mydatabase.sql

備份單表

mysqldump -u root -p mydatabase employee > employee.sql

備份所有庫

mysqldump -u root -p --all-databases > alldb.sql

僅備份結構

mysqldump -u root -p --no-data mydatabase > structure.sql

遠程備份到另一服務器(管道流式,無落地文件)

mysqldump -u root -p --databases mydatabase | \
mysql -u backup -p -h remote.server.com

還原

# 單庫還原
mysql -u root -p mydatabase < mydatabase.sql

# 導入單表到現有庫
mysql -u root -p mydatabase < employee.sql

生產環境增強參數(推薦)

mysqldump -u root -p \
  --single-transaction \      -- InnoDB 一致性快照,無鎖
  --routines --triggers \      -- 導出存儲過程/觸發器/事件
  --events \
  --hex-blob \                 -- 二進制列用十六進制
  --default-character-set=utf8mb4 \
  --extended-insert \          -- 批量 INSERT,導入快
  --quick \                    -- 流式讀取,不緩存全表結果
  --master-data=2 \            -- 記錄 Binlog 位置 (CHANGE MASTER TO 註釋)
  --flush-logs \               -- 切換 Binlog,配合增量備份
  mydatabase > mydatabase_full_$(date +%F).sql

增量備份策略

  1. 全量備份時加 --flush-logs --master-data=2,記錄 Binlog 位置。
  2. 增量備份:mysqlbinlog --start-position=XXX mysql-bin.00000N > inc.sql。
  3. 恢復:先導入全量,再按順序回放增量 Binlog。

大文件導入優化

mysql -u root -p --max_allowed_packet=100M --net_buffer_length=100K \
  --default-character-set=utf8mb4 mydatabase < dump.sql
copyright © 萬盛學電腦網 all rights reserved