原文鏈接:Windows下自動(dòng)備份MySQL數(shù)據(jù)庫(kù) | Elvin
前言
為什么做數(shù)據(jù)庫(kù)自動(dòng)備份?
公司之前一個(gè)很久沒(méi)用的項(xiàng)目服務(wù)器突然掛了,原因居然是數(shù)據(jù)庫(kù)不見(jiàn)了,莫名其妙;看了日志、什么都查了,數(shù)據(jù)庫(kù)消失的干干凈凈????這可真是要命,還好我之前有導(dǎo)出過(guò)sql文件做本地?cái)?shù)據(jù)庫(kù),不然就GG了;至此,數(shù)據(jù)庫(kù)自動(dòng)備份必然開(kāi)始著手布置了。
一、mysqldump命令
在MySQL中提供了命令行導(dǎo)出數(shù)據(jù)庫(kù)數(shù)據(jù)以及文件的一種方便的工具mysqldump
我們可以通過(guò)命令行直接實(shí)現(xiàn)數(shù)據(jù)庫(kù)內(nèi)容的導(dǎo)出dump,以下為mysqldump基本命令用法:
#MySQLdump常用
mysqldump -uroot -p123456 --databases 數(shù)據(jù)庫(kù)1 數(shù)據(jù)庫(kù)2 > xxx.sql
(固定參數(shù)不可改變)
# mysqldump:固定參數(shù)
# -u:固定參數(shù) root:mysql數(shù)據(jù)庫(kù)的賬號(hào)(緊跟-u參數(shù),也可以使用空格與-u隔開(kāi))
# -p:固定參數(shù) 123456:mysql數(shù)據(jù)庫(kù)的密碼(緊跟-p參數(shù),不可與-p隔開(kāi),我自己測(cè)試隔開(kāi)命令會(huì)報(bào)錯(cuò))
# --databases:固定參數(shù) 后面跟需要備份的數(shù)據(jù)庫(kù)名,可以是多個(gè),空格隔開(kāi)
# >:固定參數(shù)
# xxx.sql:最終備份的文件名(文件地址,詳細(xì)解析看下面)
(以上除-u及-p后的參數(shù),其余所有參數(shù)之間使用空格號(hào)隔開(kāi))
- 備份全部數(shù)據(jù)庫(kù)的數(shù)據(jù)和結(jié)構(gòu)
/data/mysqlDump/mydb.sql為備份的sql文件最后的保存路徑,下面所有的命令均是如此
??注意:路徑中的文件名切勿帶空格,如:/da ta/mysqlDump/mydb.sql
mysqldump -uroot -p123456 -A > /data/mysqlDump/mydb.sql
-
備份全部數(shù)據(jù)庫(kù)的結(jié)構(gòu)(加 -d 參數(shù))
mysqldump -uroot -p123456 -A -d > /data/mysqlDump/mydb.sql
-
備份全部數(shù)據(jù)庫(kù)的數(shù)據(jù)(加 -t 參數(shù))
mysqldump -uroot -p123456 -A -t > /data/mysqlDump/mydb.sql
-
備份單個(gè)數(shù)據(jù)庫(kù)的數(shù)據(jù)和結(jié)構(gòu)(數(shù)據(jù)庫(kù)名mydb)
mysqldump -uroot-p123456 mydb > /data/mysqlDump/mydb.sql
-
備份單個(gè)數(shù)據(jù)庫(kù)的結(jié)構(gòu)
mysqldump -uroot -p123456 mydb -d > /data/mysqlDump/mydb.sql
-
備份單個(gè)數(shù)據(jù)庫(kù)的數(shù)據(jù)
mysqldump -uroot -p123456 mydb -t > /data/mysqlDump/mydb.sql
-
備份多個(gè)表的數(shù)據(jù)和結(jié)構(gòu)(數(shù)據(jù),結(jié)構(gòu)的單獨(dú)備份方法與上同)
mysqldump -uroot -p123456 mydb t1 t2 > /data/mysqlDump/mydb.sql
-
一次備份多個(gè)數(shù)據(jù)庫(kù)
mysqldump -uroot -p123456 --databases db1 db2 > /data/mysqlDump/mydb.sql
二、數(shù)據(jù)庫(kù)備份的腳本文件
- 使用.bat腳本進(jìn)行操作
- 簡(jiǎn)單介紹:批處理文件,在DOS和Windows(任意)系統(tǒng)中,.bat文件是可執(zhí)行文件,由一系列命令構(gòu)成,其中可以包含對(duì)其他程序的調(diào)用。這個(gè)文件的每一行都是一條DOS命令(大部分時(shí)候就好像我們?cè)贒OS提示符下執(zhí)行的命令行一樣),你可以使用DOS下的Edit或者Windows的記事本(notepad)等任何文本文件編輯工具創(chuàng)建和修改批處理文件。 具體請(qǐng)看出處:bilibili
1、腳本處理文件
先使用txt文檔把下面內(nèi)容復(fù)制進(jìn)去,然后修改后綴.txt為.bat即可
@echo off
echo =============================
echo ### mysql database backup bat
echo =============================
echo =========當(dāng)前日期時(shí)間==========
set nowdate=%date:~0,4%%date:~5,2%%date:~8,2%%time:~0,2%%time:~3,2%%time:~6,2%
echo %nowdate%
echo =============================
echo =========IP地址和端口==========
set ipconfig=192.168.2.201
echo %ipconfig%
echo =============================
echo ======進(jìn)入到mysql安裝目錄======
D:
cd D:\MySQL\bin
echo =============================
echo ====備份mysql文件到指定文件夾====
echo mysql文件備份中...
echo =============================
mysqldump -uroot -proot school > "D:\MySQLCopy_File\copy_%ipconfig%_%nowdate%.sql"
echo MySQL 備份成功
echo =============================
echo 備份的sql文件
forfiles /p "D:\MySQLCopy_File" /s /m *.sql
echo =============================
rem 獲取"D:\MySQLCopy_File"目錄下的sql文件,并且刪除7天前的文件
echo *********************
echo * 按時(shí)間刪除7天前的sql文件 *
echo *********************
echo 刪除操作前存在的sql文件
forfiles /p "D:\MySQLCopy_File" /s /m *.sql
echo =============================
rem 刪除sql文件操作
forfiles /p "D:\MySQLCopy_File" /s /m *.sql /d -7 /c "cmd /c del /q /f @path"
echo 刪除操作后存在的sql文件
forfiles /p "D:\MySQLCopy_File" /s /m *.sql
echo =============================
rem 不關(guān)閉窗口操作
rem pause>nul 表示命令窗口不會(huì)出現(xiàn)“請(qǐng)按任意鍵繼續(xù)”
rem pause>nul
rem 關(guān)閉窗口
@echo 數(shù)據(jù)庫(kù)備份操作完成,5秒后關(guān)閉程序...
ping /n 5 127.1 >nul
exit
2、腳本處理文件解析
- set:用于設(shè)定參數(shù)
- echo:該命令用于在控制臺(tái)輸出文字信息,更具體可百度了解。
- rem:該命令為注釋作用,不會(huì)在控制臺(tái)顯示
- forfiles:該命令對(duì)文件進(jìn)行操作,可參考文章:forfiles命令詳解;或自行百度了解
- mysqldump:數(shù)據(jù)庫(kù)備份命令,上面有介紹
-
set nowdate=%date:~0,4%%date:~5,2%%date:~8,2%%time:~0,2%%time:~3,2%%time:~6,2%
這里可自行百度了解 - 如果不想關(guān)閉窗口,可以使用pause>nul命令(把前面的rem刪除即可),并把最后三行代碼rem注釋掉或刪掉
3、腳本需要更改處
- set ipconfig=192.168.2.201
- 更改為自己的ip地址
- cd D:\MySQL\bin
- 更改為自己MySQL所在的安裝位置
- 進(jìn)入這個(gè)目錄之前一定要先進(jìn)入這個(gè)目錄所在的系統(tǒng)盤;如果是在C盤,則D:\MySQL\bin命令的上一行D:改為C:
- mysqldump -u
root
-proot
school
>"D:\mysql_backup\shop%ipconfig%_%nowdate%.sql"
- 可參考mysqldump命令
- 高亮部分需要更改,第一處root為賬號(hào),改為自己mysql數(shù)據(jù)庫(kù)的賬號(hào)
- 高亮部分需要更改,第二處root為密碼,改為自己mysql數(shù)據(jù)庫(kù)的密碼
- 高亮部分需要更改,第三處school為數(shù)據(jù)庫(kù)名,改為需要備份的數(shù)據(jù)庫(kù)名稱
- 高亮部分需要更改,第四處為備份文件保存的路徑,改為需要保存的位置
- D:\MySQLCopy_File
- 這里所有的這個(gè)地址均要改為自己的保存地址
- forfiles /p “D:\MySQLCopy_File” /s /m *.sql /d
-7
/c “cmd /c del /q /f @path”- -7為刪除7天前的sql文件;要?jiǎng)h除幾天前的sql文件,只需要將7改為指定天數(shù)
4、腳本執(zhí)行亂碼錯(cuò)誤
如果出現(xiàn)亂碼錯(cuò)誤,可以使用文檔編輯.bat文件,選擇功能另存為
,選擇編碼格式為ANSI
如果還是出現(xiàn)中文亂碼,可以文件內(nèi)容最頂部加入以下代碼,即@echo off
這一行代碼上面
rem 標(biāo)注為使用936編碼格式編譯中文
chcp 936
@echo off
三、Windows定時(shí)任務(wù)
按圖索驥
進(jìn)入管理頁(yè)面,選擇任務(wù)計(jì)劃程序
如果沒(méi)有MySQL文件夾則新建一個(gè),在MySQL文件夾下創(chuàng)建任務(wù)
輸入任務(wù)名稱和描述
選擇每天(這個(gè)看自己需要)
選擇開(kāi)始時(shí)間(我這里是每天早上九點(diǎn)半)
操作選擇“啟動(dòng)程序”
點(diǎn)擊瀏覽,選擇上面你創(chuàng)建好的.bat腳本文件,之后下一步、完成即可
創(chuàng)建完成之后就可以在定時(shí)任務(wù)的列表看到自己創(chuàng)建好的定時(shí)任務(wù)了,每天早上九點(diǎn)半自動(dòng)開(kāi)始備份命令中定義的數(shù)據(jù)庫(kù)
借鑒鏈接
MySQL 數(shù)據(jù)庫(kù)定時(shí)備份的幾種方式(非常全面)
mysql數(shù)據(jù)庫(kù)自動(dòng)備份(Windows版)
更多知識(shí)持續(xù)更新中!!!
聲明
借鑒部分均注明了原文出處,可在文章的借鑒鏈接處獲取原文出處文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-775168.html
文中若內(nèi)容有涉及原版權(quán),請(qǐng)郵件聯(lián)系elvin-chen@qq.com,涉及的相關(guān)文章或內(nèi)容將會(huì)及時(shí)更改或取消發(fā)布文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-775168.html
到了這里,關(guān)于Windows下自動(dòng)備份MySQL數(shù)據(jù)庫(kù)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!