Java 调用Mysql dump 备份数据库,mysqldump,SimpleDateFo
分享于 点击 28758 次 点评:93
Java 调用Mysql dump 备份数据库,mysqldump,SimpleDateFo
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();}
用户点评