首页 > 代码库 > Java web 项目中对数据库备份和恢复
Java web 项目中对数据库备份和恢复
先贴出来参考地址: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 项目中对数据库备份和恢复
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。