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

Windows MySQL 備份還原命令速查:mysqldump、mysqladmin、mysql 三板斧

     編輯:MySQL 資料庫相關知識

環境假設

  • 安裝路徑:C:\MySQL (已加入 PATH)
  • 帳號:root / 123456
  • 資料庫:database_name
  • 備份目標:D:\backup_20240115.sql

1. 邏輯備份

mysqldump -uroot -p123456 database_name > D:\backup_20240115.sql

壓縮:

mysqldump -uroot -p123456 database_name | gzip > D:\backup_20240115.sql.gz

2. 還原流程

REM 1. 刪除舊庫 (可選)
mysqladmin -uroot -p123456 DROP database_name

REM 2. 建立新庫
mysqladmin -uroot -p123456 CREATE database_name

REM 3. 匯入
mysql -uroot -p123456 database_name < D:\backup_20240115.sql

REM 4. 壓縮檔匯入
gunzip < D:\backup_20240115.sql.gz | mysql -uroot -p123456 database_name

關鍵注意事項

  • 備份檔內含 CREATE DATABASE 時,還原前可不手動建庫
  • 目標資料庫名必須與備份來源一致,否則需手動建庫並指定
  • 大檔案匯入建議:mysql --max_allowed_packet=1G ...
  • 編碼一致:備份時 --default-character-set=utf8mb4,還原時同字元集

3. 物理備份 (停機/鎖表)

REM 1. 鎖表並刷盤
mysql -uroot -p123456 -e "FLUSH TABLES WITH READ LOCK;"

REM 2. 複製 data 目錄 (xcopy/robocopy)
xcopy C:\MySQL\data\database_name D:\backup_physical\ /E /I /H

REM 3. 解鎖
mysql -uroot -p123456 -e "UNLOCK TABLES;"

4. 定時備份排程

REM 建立 backup.bat
@echo off
set DATE=%date:~-4,4%%date:~-10,2%%date:~-7,2%
mysqldump -uroot -p123456 --single-transaction --routines --triggers database_name > D:\backup_%DATE%.sql
REM 保留 7 天
forfiles /p D:\ /m backup_*.sql /d -7 /c "cmd /c del @path"

REM 計劃任務:每日 02:00 執行 backup.bat

5. 驗證備份可用性

REM 定期在測試環境還原驗證
mysqladmin -uroot -p123456 CREATE verify_db
mysql -uroot -p123456 verify_db < D:\backup_latest.sql
mysql -uroot -p123456 -e "CHECKSUM TABLE verify_db.tbl;"
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved