Java Web 專案中對Database Backup和恢複

來源:互聯網
上載者:User

標籤:style   blog   http   color   io   os   ar   java   for   

先貼出來參考地址:http://www.open-open.com/lib/view/open1331354269624.html

 

直接貼代碼:

package com.ly.jxc.util;import java.io.IOException;import java.text.SimpleDateFormat;import java.util.Date;public class DBRecover {    /** 訪問MySQL資料庫伺服器所在的url */     private String serverUrl;     /** 訪問MySQL資料庫的使用者名稱 */     private String username;     /** 訪問MySQL資料庫的密碼 */     private String password;                public String getServerUrl() {      return serverUrl;     }          public void setServerUrl(String serverUrl) {      this.serverUrl = serverUrl;     }          public String getUsername() {      return username;     }          public void setUsername(String username) {      this.username = username;     }          public String getPassword() {      return password;     }          public void setPassword(String password) {      this.password = password;     }          public DBRecover(String serverUrl,String username, String password) {      super();      this.serverUrl=serverUrl;      this.username = username;      this.password = password;     }          public String backup(String backupPath, String dbName) throws IOException {           String backupFile = backupPath+ new SimpleDateFormat("yyyy-MM-dd-HH-mm-ss").format(new Date()) + ".sql";           String mysql =backupPath+"mysqldump "+"--host="+serverUrl+" --user=" + username + " --password="+ password + " --opt " + dbName + "> "+backupFile ;           System.out.println("備份"+mysql);      java.lang.Runtime.getRuntime().exec("cmd /c " + mysql);          System.out.println("備份成功!");           return backupFile;          }          public void restore(String restoreFile, String dbName,String path) throws Exception {            String mysql = path+"mysql "+"-h"+serverUrl+" -u" + username + " -p"+ password + " " + dbName + " < " + restoreFile;                   System.out.println("+++++++++++++++++++++++++++"+mysql);                  java.lang.Runtime.getRuntime().exec("cmd /c " + mysql);             System.out.println("還原成功!");     }          /**      * @param args      */     public static void main(String[] args) {           String serverUrl="192.168.1.6";             String userName = "root";           String pwd = "root";           DBRecover backup = new DBRecover(serverUrl,userName, pwd);            try {          backup.backup("", "lyjxc");//       backup.restore("d:/nationz2010-12-20-14-16-47.sql", "nationz");      } catch (Exception e) {       e.printStackTrace();      }     }}

注意點:1.在 backup 和 restore 中的執行中我分別有一些變化,因為需要用到mysql  bin下面的 mysql.exe,mysqldump.exe,由於沒有配置mysql 的環境設定,所以我將這兩個檔案拷貝到我的項目中 exec 執行的時候是執行我項目中的這兩個檔案。就是代碼中mysql前面的兩個變數就是代表執行的是我項目中的mysql.exe,mysqldump.exe

    2.拷貝出來的目的還有另一個,由於mysql預設安裝路徑是在系統硬碟的program file檔案夾下。如果直接用mysql>bin 下面 mysql.exe,mysqldump.exe,備份出來的sql檔案為0kb,是由於program file 檔案夾名字存在空格,會影響。所以為了保險我將檔案放到我的項目中來執行。

    3.還有sql檔案名稱字中貌似還不能有“:”  時分秒的間隔 我想用冒號,結果生產不出來的。

OK 到此結束。我本地測試內部伺服器通過。

 

Java Web 專案中對Database Backup和恢複

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.