使用批處理(.bat)管理 MySQL 數據庫:備份、還原與更新元號
Copyright Notice: This article is an original work licensed under the CC 4.0 BY-NC-ND license.
If you wish to repost this article, please include the original source link and this copyright notice.
Source link: https://v2know.com/article/1284
在日常維護 MySQL 數據庫的過程中,經常需要進行 數據庫備份、數據還原以及數據表更新 等操作。本文將介紹三個批處理文件的功能與原理,並提供完整代碼與逐行解讀,幫助你快速理解與使用。
一、tskdb_backup.bat
—— 自動備份 MySQL 數據庫
完整代碼
@echo off
cd C:\Program Files\MySQL\MySQL Server 5.7\bin
REM set bk_file=dump_tskdb_%date:~0,4%%date:~5,2%%date:~8,2%.bak
set bk_file=dump_tskdb.bak
mysqldump -uroot -ptoukei2013 tsk_db --opt -F > c:\db_backup\%bk_file%
net use \\pc02 Gg5DeZ2t /USER:administrator
copy c:\db_backup\%bk_file% \\PC02\db_backup\%bk_file%
net use \\pc03 Gg5DeZ2t /USER:administrator
copy c:\db_backup\%bk_file% \\PC03\db_backup\%bk_file%
說明
-
@echo off
關閉命令行回顯,讓輸出更乾淨。 -
cd C:\Program Files\MySQL\MySQL Server 5.7\bin
切換到 MySQL 的安裝目錄,確保後續mysqldump
命令能正常執行。 -
set bk_file=dump_tskdb.bak
定義備份文件名,這裏固定為dump_tskdb.bak
。
(註:上方被註解掉的一行,可以生成帶日期的文件名,例如dump_tskdb_20250908.bak
,方便歸檔。) -
mysqldump -uroot -ptoukei2013 tsk_db --opt -F > c:\db_backup\%bk_file%
使用mysqldump
對數據庫tsk_db
進行備份,保存到c:\db_backup\dump_tskdb.bak
。 -
net use \\pc02 Gg5DeZ2t /USER:administrator
連接遠程電腦pc02
,使用管理員帳號和密碼登錄。 -
copy c:\db_backup\%bk_file% \\PC02\db_backup\%bk_file%
將備份文件複製到pc02
的共享目錄。 -
同理,後面兩行將備份文件複製到
pc03
的共享目錄。
這樣一份備份就能分發到多台電腦,提高安全性。
二、tskdb_restore.bat
—— 從備份文件還原數據庫
完整代碼
@echo off
cd C:\Program Files\MySQL\MySQL Server 5.7\bin
mysql -uroot -ptoukei2013 tsk_db < C:\db_backup\dump_tskdb.bak
echo f[^x[X̃XgA܂
pause;
說明
-
@echo off
隱藏命令執行過程。 -
cd C:\Program Files\MySQL\MySQL Server 5.7\bin
切換到 MySQL 的安裝目錄。 -
mysql -uroot -ptoukei2013 tsk_db < C:\db_backup\dump_tskdb.bak
調用mysql
客戶端,將dump_tskdb.bak
文件中的 SQL 語句導入數據庫tsk_db
。注意:這會直接覆蓋當前數據庫中的數據,請謹慎操作。
-
echo f[^x[X̃XgA܂
這一行看起來是亂碼,可能是作者原本想輸出提示文字(例如「復元が完了しました」)。
如果有需要,可以改成:echo Restore completed!
-
pause;
暫停,等待用戶按任意鍵再關閉窗口,避免命令執行完成後窗口立即退出。
三、update_gengou.bat
—— 更新「元號」資料表
完整代碼
@ECHO off
chcp 65001
ECHO use tsk_db; > sql.bat
ECHO UPDATE gengou SET sort = sort + 1; >> sql.bat
ECHO UPDATE gengou SET to_date = "2019-04-30" where id = 1; >> sql.bat
ECHO INSERT INTO gengou VALUES(5, 5, "R", "令和", "2019-05-01", NULL, 1); >> sql.bat
mysql -u root -ptoukei2013 < sql.bat
del sql.bat
說明
-
@ECHO off
隱藏執行命令。 -
chcp 65001
切換命令行編碼為 UTF-8,避免日文「令和」顯示亂碼。 -
ECHO use tsk_db; > sql.bat
創建臨時文件sql.bat
,並寫入 SQL 語句use tsk_db;
。 -
接下來的
ECHO ... >> sql.bat
將多條 SQL 更新語句追加到臨時文件中:-
將
gengou
表的sort
全部 +1。 -
更新
id=1
的記錄(可能是「平成」),把結束日期設為 2019-04-30。 -
插入新紀元「令和」,起始日期 2019-05-01。
-
-
mysql -u root -ptoukei2013 < sql.bat
執行臨時 SQL 文件,完成更新。 -
del sql.bat
執行完後刪除臨時文件,保持環境乾淨。
總結
這三個 .bat
文件分別解決了 備份數據庫、還原數據庫與更新數據 的實際需求。
-
tskdb_backup.bat
:確保數據有多份備份,降低風險。 -
tskdb_restore.bat
:快速將備份恢復到數據庫。 -
update_gengou.bat
:針對特定表(如日本元號表)進行批量更新。
使用批處理的好處是:自動化、可重複執行、操作簡單。只需雙擊文件,即可完成一系列操作,適合日常維護。
This article was last edited at