JAVAWEB實現數據庫備份功能


 一.整體思路
這次公司的網管系統需要做一個數據庫備份的功能,由於使用的MySql數據庫,而且系統是windows(目前也就會windows),所以可以選擇的方法就比較有限了。
一開始我嘗試使用mysql的select命令來導出數據表,后來發現行不通,select column from tablename outfile 的方法一次只能導出單一表格,而且有數據庫權限問題。
最后決定選擇使用mysqldump命令的方法,用java的運行時類Java.lang.Runtime來使用后台窗口。


二.數據備份

1.備份數據庫

命令行
———————————————————————————————————
mysqldump -h數據庫服務器IP -P數據庫使用端口號 -u賬戶 -p密碼 數據庫名>保存路徑
———————————————————————————————————

使用root用戶備份數據庫fnmsdb5,數據庫端口為3306,數據庫位於本機(IP:127.0.0.1)

在命令窗口運行mysqldump命令


執行后D盤的MysqlBackup路徑下就有了一個名字為20160426.sql的備份文件


備份文件

mysqldump命令需要在mysql的bin目錄下執行,這里我配置了msyql的環境變量,可以在命令窗口的默認目錄下執行mysqldump命令。

在環境變量的path欄里面添加mysql下面的bin文件夾路徑即可,比如我是D:\MYSQL\bin.


mysql環境變量

 

2.JAVA代碼實現

JAVA代碼部分參考了@不動聲色的蝸牛的文章,可以前往http://blog.csdn.net/gaohuanjie/article/details/37512341查看。

主要用到了JAVA的RunTime類和Process類來實現命令窗口的操作,需要注意的是-p、-h、-u、-p(密碼)和后面的值之間不要加入空格,不然會出現不可預知的錯誤。

Process process = Runtime.getRuntime().exec(" mysqldump -h" + hostIP +
" -p"+port+" -u" + userName + " -p" + password + " --set-charset=UTF8 " + databaseName);
InputStreamReader inputStreamReader = new InputStreamReader(process.getInputStream(), "utf8");


總的來說功能不算復雜,主要是mysqldump的相關配置和使用要熟悉,實現起來並不困難。附上一張丑丑的實現圖,本人程序員小白一枚,歡迎大大們來給點指導。

實現圖

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM