win32mysql数据库回复_windows mysql 数据库备份与还原方法
一.使用 Mysql 自帶 mysqldump?命令進行數據庫備份
mysql 數據庫自帶備份命令 mysqldump ,可對數據庫進行備份操作
最簡單的備份是將數據庫備份至本地,生成? **.sql 文件
編寫備份腳本文件
(創建一個 txt 文件,寫入批處理腳本,再將文件的后綴改為 .bat 變為批處理腳本文件)rem autherKant
rem date:20201118
rem ******Backup MySQL Start******
@echo off
::設置時間變量
set "Ymd=%date:~0,4%%date:~5,2%%date:~8,2%"
::創建存儲的文件夾
if not exist "D:\mysql_backup" md "D:\hero_backup"
::執行備份操作
"D:\mysql-8.0.20-winx64\bin\mysqldump" --opt --user=root --password=root --host=127.0.0.1 --protocol=tcp --port=3306 --default-character-set=utf8 --single-transaction=TRUE --routines --events "demo" >D:\mysql_backup\backup_demo_%Ymd%.sql
::刪除兩周前的備份數據
forfiles /p "D:\mysql_backup" /m backup_*.sql -d -14 /c "cmd /c del /f @path"
@echo on
rem ******Backup MySQL End******
其中一些關鍵語句解釋:
1.1 為備份文件存儲位置設立一個文件夾,即如果不存在該文件就 md 創建該文件夾::創建存儲的文件夾
if not exist "D:\hero _backup" md "D:\hero_backup"
1.2 備份操作:
“D:\mysql-8.0.20-winx64\bin\mysqldump” :執行本地mysql文件安裝路徑的bin文件夾中的mysqldump
–single-transaction=TRUE: 備份時沒有鎖表
–user=root :mysql 帳號
–password=root :mysql 密碼
–host=127.0.0.1 :mysql 的ip地址
–port=3306 :mysql 的端口號
–default-character-set=utf8 :備份默認編碼
events “hero” :進行備份的數據庫名稱
>D:\mysql_backup\backup_hero_%Ymd%.sql :備份文件存儲的路徑
set “Ymd=%date:0,4%%date:5,2%%date:~8,2%” :設置備份的日期參數,以供給 sql 命名使用
關于時間參數的參考:
%date:~0,10% //提取年月日信息
%date:~-3% //提取星期幾信息
%time:~0,5% //提取時間中的時和分
%time:~0,-3% //提取時和分和秒信息
*注意由于腳本文件以空格和逗號進行分隔執行,所以有關路徑的如果路徑中有空格,必須以雙引號引起來
*通常建議有關路徑的都用雙引號引起來::執行備份操作
"D:\mysql-8.0.20-winx64\bin\mysqldump" --opt --user=root --password=123456 --host=127.0.0.1 --protocol=tcp --port=3306 --default-character-set=utf8 --single-transaction=TRUE --routines --events "demo" >D:\mysql_backup\backup_demo_%Ymd%.sql
1.3 對備份文件進行過期刪除處理
Forfiles:從文件夾或樹中選擇要進行批處理的文件。
語法:
forfiles [/p Path ] [/m SearchMask ] [/s ] [/c Command ] [/d [{+ | - }] [{MM / DD / YYYY | DD }]]
參數:
/p Path:指定Path ,表明要從哪里開始搜索。默認的文件夾是當前工作目錄,該目錄通過鍵入句號(.) 指定。
/m SearchMask:按照SearchMask 搜索文件。默認的SearchMask 是*.* 。
/m backup_*.sql 指的是搜索以backup_為前綴,.sql為后綴的文件
/s:指示forfiles 在子目錄中搜索。
/c Command:在每個文件上運行指定的Command 。帶有空格的命令字符串必須用引號括起來。默認的Command 是"cmd /c echo @file" 。
/d [{+ | - }] [{MM / DD / YYYY | DD }]:選擇日期大于或等于(+ )(或者小于或等于(- ))指定日期的文件,其中MM / DD / YYYY 是指定的日期,DD 是當前日期減去DD 天。如果未指定+ 或- ,則使用+ 。DD 的有效范圍是0 - 32768。
-d -14:即前14天::刪除兩周前的備份數據
forfiles /p "D:\mysql_backup" /m backup_*.sql -d -14 /c "cmd /c del /f @path"
二、跨主機備份
2.1 將需要的數據庫備份至其他主機的指定數據庫內
語法:
mysqldump --host=源數據庫ip -u源數據庫賬戶 -p源數據庫密碼 --opt 要備份的數據庫 | mysql --host=目標機器ip -u目標數據庫用戶名 -p目標數據庫密碼 -C 目標數據庫mysqldump --host=127.0.0.1 -uroot -proot --opt demo | mysql --host=1.2.3.4 -uroot -proot -C demo
2.2 遠程備份數據庫的 sql 文件
語法:"D:\mysql-8.0.20-winx64\bin\mysqldump" --opt --user=root --password=root --host=遠程數據庫ip --protocol=tcp --port=3306 --default-character-set=utf8 --single-transaction=TRUE --routines --events "demo" >D:\mysql_backup\backup_demo_%Ymd%.sql
注:
進行遠程備份的前提是,遠程數據庫需要創建一個對本機IP能夠訪問的用戶,創建遠程訪問用戶操作。
還原數據庫
兩種還原方法:mysqldump -uroot -proot -h127.0.0.1 demo < "D:\mysql_backup\backup_demo_20200814.sql"
mysql -uroot -proot demo< "D:\mysql_backup\backup_demo_20200814.sql"
總結
以上是生活随笔為你收集整理的win32mysql数据库回复_windows mysql 数据库备份与还原方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: windows C盘瘦身
- 下一篇: linux cmake编译源码,linu