mysqldump備份還原數據庫(日常記錄)

這兩天服務器不知道什麼原因,數據庫第三方軟件備份經常失敗,因而考慮換個方式。

基於bat備份數據。個人比較喜歡,原因是不必依賴第三方軟件,而且操作簡單,自定義也很方便。


數據庫:ddhost

mysql用戶名:root

密碼:hhhh

1、新建bat:

(1)生成一個時間戳,例如20160428;

set "Ymd=%date:~,4%%date:~5,2%%date:~8,2%"

(2)保存備份文件的根目錄

set "base_dir=E:\BACK\"

(3)生成一個當天備份文件保存的目錄

set "back_up_dir=%base_dir%ddhost_%Ymd%"

(4)創建一個目錄

md "%back_up_dir%"

(5)使用mysqldump備份sql

cd C:\Program Files\MySQL\MySQL Server 5.6\bin\mysqldump -h localhost --single-transaction --ignore-table=ddhost.T_SYS_FILE --ignore-table=ddhost.T_SYS_FILE2 -uroot -phhhh --default-character-set=utf8 ddhost > "%back_up_dir%"\ddhost.sql

注:因爲有兩張表情況比較特殊,不需要備份。基於此,排除這兩張表使用【--ignore-table=db_name.table_name】;成功備份後發現中文出現亂碼,百度了一下,可使用【--default-character-set=utf8】。


至此,完成備份數據庫的bat編寫完成。接下來就是考慮定時執行的問題啦~~windows可以設置任務計劃,把這個bat放到任務計劃裏面即可。


在執行bat過程中,mysql的用戶名/密碼都被暴露了出來,那麼能不能讓bat在後臺偷偷跑呢??關於這個問題,網上給出了很多答案,這裏記錄其中一種:

2、新建一個vbs文件;

(1)在文件內加入:createobject("wscript.shell").run "E:\mysql_back\mysql_backup.bat",0;

注:E:\mysql_back\mysql_backup.bat是備份數據庫的bat的路徑!!

(2)把該vbs文件加入到任務計劃。


在操作過程中還發現一個問題:把備份好的sql還原到數據庫提示中文亂碼,關於這個問題也在網上找到了方案,以下是完整的還原語句:

>mysql -hlocalhost --default-character-set=utf8 -uroot -phhhh ddhost3 < E:\BACK\ddhost_20160428\ddhost.sql


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章