日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

Windows中通过bat定时执行命令和mysqldump实现数据库备份

發布時間:2025/3/19 数据库 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Windows中通过bat定时执行命令和mysqldump实现数据库备份 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

場景

Windows Server 的服務器,使用的數據庫是Mysql數據庫。

需要定時對數據庫進行備份。

怎樣通過一個bat腳本雙擊運行后定時執行命令。

通過Mysql自帶的mysqldump實現將數據庫備份到文件中。

這里是有兩個數據庫,所以要執行兩次備份操作。

Mysqldump

mysqldump 是 MySQL 自帶的邏輯備份工具。

它的備份原理是通過協議連接到 MySQL 數據庫,將需要備份的數據查詢出來,

將查詢出的數據轉換成對應的insert 語句,當我們需要還原這些數據時,

只要執行這些 insert 語句,即可將對應的數據還原。

命令格式

mysqldump [選項] --數據庫名 [選項 表名] > 腳本名

參數名縮寫含義
--host-h服務器IP地址
--port-P服務器端口號
--user-uMySQL 用戶名
--pasword-pMySQL 密碼
--databases指定要備份的數據庫
--all-databases備份mysql服務器上的所有數據庫
--compact壓縮模式,產生更少的輸出
--comments添加注釋信息
--complete-insert輸出完成的插入語句
--lock-tables備份前,鎖定所有數據庫表
--no-create-db/--no-create-info禁止生成創建數據庫語句
--force當出現錯誤時仍然繼續備份操作
--default-character-set指定默認字符集
--add-locks備份數據庫表時鎖定數據庫表

示例:

備份所有數據庫:

mysqldump -uroot -p --all-databases > /backup/mysqldump/all.db

備份指定數據庫:

mysqldump -uroot -p test > /backup/mysqldump/test.db

備份指定數據庫指定表(多個表以空格間隔)

mysqldump -uroot -p? mysql db event > /backup/mysqldump/2table.db

備份指定數據庫排除某些表

mysqldump -uroot -p test --ignore-table=test.t1 --ignore-table=test.t2 > /backup/mysqldump/test2.db

注:

博客:
https://blog.csdn.net/badao_liumang_qizhi
關注公眾號
霸道的程序猿
獲取編程相關電子書、教程推送與免費下載。

實現

bat中實現定時執行某命令

@echo off? title "badaodechengxvyuan" set INTERVAL=5 timeout %INTERVAL%:Again?echo %date% %time:~0,8%timeout %INTERVAL%goto Again?

這里的5代表5秒執行一次,其實就是個死循環。

然后再循環里添加上備份數據的mysqldump的命令

@echo off? title "fzys-data-bak-task" set INTERVAL=20 timeout %INTERVAL%:Again? echo "fzys-bak-begin:" echo %date% %time:~0,8%"C:\Program Files\MySQL\MySQL Server 5.6\bin\mysqldump" -h127.0.0.1 -uroot -p123456 fzys> D:\fzysbak.sql &echo "fzys-bak-end:" echo %date% %time:~0,8%timeout %INTERVAL%goto Again?

其中mysqldump沒有配置環境變量,所以是在腳本運行環境下的全路徑。

而且必須用雙引號包裹起來。

然后帶著輸出開始和結束時間。

如果是要備份多個數據庫的話

@echo off? title "fzys-data-bak-task" set INTERVAL=20 timeout %INTERVAL%:Again? echo "fzys-bak-begin:" echo %date% %time:~0,8%"C:\Program Files\MySQL\MySQL Server 5.6\bin\mysqldump" -h127.0.0.1 -uroot -p123456 fzys> D:\fzysbak.sql &echo "fzys-bak-end:" echo %date% %time:~0,8%ping 127.0.0.1 -n 8 &echo "fzysnacos-bak-begin:" echo %date% %time:~0,8%"C:\Program Files\MySQL\MySQL Server 5.6\bin\mysqldump" -h127.0.0.1 -uroot -p123456 fzys-nacos> D:\fzys-nacosbak.sqltimeout %INTERVAL%goto Again?

進行一個ping 的操作,相當于休眠等待8秒的操作,防止上個操作影響下個操作。

總結

以上是生活随笔為你收集整理的Windows中通过bat定时执行命令和mysqldump实现数据库备份的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。