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

Windows 下 MySQL 備份與還原命令實戰:mysqldump、mysqladmin、還原流程

     編輯:MySQL 資料庫相關知識

環境假設

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

一、備份指令

REM 完整備份(含結構+資料)
mysqldump -u root -p123456 database_name > D:\backup_20240115.sql

REM 僅備份結構(無資料)
mysqldump -u root -p123456 -d database_name > D:\structure_only.sql

REM 備份多個資料庫
mysqldump -u root -p123456 --databases db1 db2 > D:\multi_db.sql

REM 全例備份(所有資料庫)
mysqldump -u root -p123456 --all-databases > D:\full_backup.sql

REM 壓縮備份(需安裝 gzip,如 Git Bash、Gow、Cygwin)
mysqldump -u root -p123456 database_name | gzip > D:\backup_20240115.sql.gz

二、還原指令

方法 A:mysql 客戶端導入(標準)

REM 1. 進入 MySQL 建立目標資料庫(若不存在)
mysql -u root -p123456 -e "CREATE DATABASE IF NOT EXISTS database_name DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;"

REM 2. 導入
mysql -u root -p123456 database_name < D:\backup_20240115.sql

方法 B:source 命令(在 MySQL Shell 內)

mysql -u root -p123456
mysql> USE database_name;
mysql> SOURCE D:/backup_20240115.sql;

三、重建資料庫完整流程(覆蓋還原)

REM 1. 刪除舊庫
mysqladmin -u root -p123456 DROP database_name

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

REM 3. 導入備份
mysql -u root -p123456 database_name < D:\backup_20240115.sql

四、關鍵注意事項

  • 資料庫名稱一致性:備份檔內的 CREATE DATABASE / USE 語句需與目標資料庫名一致,否則導入會建立錯誤庫或報錯。
  • 字元集一致:建庫時指定 utf8mb4,避免中文亂碼。
  • 權限足夠:root 或具備 CREATE、DROP、INSERT 等權限的帳號。
  • 大檔案導入優化:
    • 關閉自動提交:SET autocommit=0; 導入後 COMMIT;
    • 關閉唯一檢查/外鍵檢查:SET unique_checks=0; SET foreign_key_checks=0; 導入後開啟。
    • 調大 max_allowed_packet。
  • 定時備份:使用 Windows 任務排程器(Task Scheduler)執行 .bat 腳本。

五、.bat 自動備份腳本範例

@echo off
set DATE_STR=%date:~,4%%date:~5,2%%date:~8,2%
set BACKUP_DIR=D:\mysql_backup
set DB_NAME=database_name
set USER=root
set PASS=123456

if not exist %BACKUP_DIR% mkdir %BACKUP_DIR%

mysqldump -u %USER% -p%PASS% %DB_NAME% > "%BACKUP_DIR%\%DB_NAME%_%DATE_STR%.sql"

REM 保留最近 7 天
forfiles /p %BACKUP_DIR% /m *.sql /d -7 /c "cmd /c del @path"

echo Backup completed: %DB_NAME%_%DATE_STR%.sql

掌握 Windows 命令列備份還原,配合排程器,輕鬆落地自動化備份策略。

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