java調用mysqldump生產備份檔案為空白的問題

來源:互聯網
上載者:User

標籤:localhost   java小程式   windows   import   public   

今天試著寫了一個java小程式,功能是調用windows下的mysqldump對某個資料庫進行備份,代碼如下,注意紅色部分.

import java.sql.*;
import java.io.*;

public class MqldumpTest {
 public static void main(String[] args) {
  try {
   String url = "jdbc:mysql://localhost/hxl";
   String user = "root";
   String pwd = "mysql";

   // 載入驅動,這一句也可寫為:Class.forName("com.mysql.jdbc.Driver");
   Class.forName("com.mysql.jdbc.Driver").newInstance();
   // 建立到MySQL的串連
   Connection conn = DriverManager.getConnection(url, user, pwd);

   // 執行SQL語句
   Statement stmt = conn.createStatement();// 建立語句對象,用以執行sql語言
   ResultSet rs = stmt
     .executeQuery("select schema_name db_name from information_schema.SCHEMATA where schema_name=‘hxl‘ ");

   // 處理結果集
   while (rs.next()) {
    String l_db_name = rs.getString("db_name");
    System.out.println(l_db_name);
    
    String command = "cmd /C mysqldump -h localhost -uroot -pmysql  --default-character-set=gbk --single-transaction --databases hxl>E:\\mysqlbak\\hxl_bak_20140915.sql" ;
    System.out.println(command);
    Runtime r = Runtime.getRuntime();
    
    Process p = r.exec(command);
    
   }
   rs.close();// 關閉資料庫
   conn.close();
  } catch (Exception ex) {
   System.out.println("Error : " + ex.toString());
  }
 }
}

如上程式執行成功了,但問題是產生的備份檔案是0位元組,這裡mysqldump是自己調用mysql安裝路徑下的C:\Program Files\MySQL\MySQL Server 5.5\bin,網上查了說是路徑有空格的問題,我試著將mysqldump.exe拷貝一份到c:\mysqldump\目錄下,確保該路徑沒有空格,然後修改java代碼裡的代碼,之間指定運行C:\mysqldump\mysqldump.exe,修改如下
String command = "cmd /C C:\\MOTOR OIL\\mysqldump -h localhost -uroot -pmysql  --default-character-set=gbk --single-transaction --databases hxl>E:\\mysqlbak\\hxl_bak_20140915.sql" ;

再次運行後,正常產生了備份檔案.

-- The End --

java調用mysqldump生產備份檔案為空白的問題

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.