Java 調用Mysql dump 備份數據庫
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");try {
String name = sdf.format(new Date()); String filePath = System.getProperty("user.dir") + "//" + name + ".sql";
// 系統執行器 Runtime rt = Runtime.getRuntime();
// 導出數據庫語句 StringBuffer cmd = new StringBuffer(); cmd.append("mysqldump -u"); cmd.append(ServeConfig.dbUser); cmd.append(" -p"); cmd.append(ServeConfig.dbPass); cmd.append(" --set-charset=utf8 "); cmd.append(ServeConfig.dbName);
// 執行導出獲取輸入流 Process child = rt.exec(cmd.toString()); InputStream in = child.getInputStream(); InputStreamReader ir = new InputStreamReader(in, "utf8");
// 輸出文件 FileOutputStream fo = new FileOutputStream(filePath); OutputStreamWriter os = new OutputStreamWriter(fo, "utf8");
// 開始讀取數據 char[] temp = new char[1024000]; int len = 0; while ((len = ir.read(temp)) > 0) { os.write(temp, 0, len); os.flush(); }
// 別忘記關閉輸入輸出流 in.close(); ir.close(); os.close(); fo.close();
// 將文件發送到備份服務器 FileUpLoad upload = FileUpLoad.createFileUpLoad(ServeConfig.backAddr, new File(filePath)); upload.tryStart(); upload.waitFinish(); upload.doClose();
} catch (Exception e) { e.printStackTrace(); }</pre>