如何使用java实现mysql数据库自动备份

xuyanli 2008-01-16 10:18:20
要给用户升级数据库,首先要备份数据库,然后进行数据库的修改和数据的割接。现在首要的问题是:用java代码实现数据库的自动备份

数据库是mysql,想用java代码实现此数据库的自动备份,现在是一点思路也没有。
...全文
1629 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
woloveyu 2009-01-08
  • 打赏
  • 举报
回复
不错
jiahl 2008-12-17
  • 打赏
  • 举报
回复
谢谢!可以参考一下
ljfsg 2008-11-16
  • 打赏
  • 举报
回复
我是新手,看了上面代码很有收获~~,顶一个哈
xuyanli 2008-01-25
  • 打赏
  • 举报
回复
刚刚解决了,在
String   stmt1   =   "mysqldump   "   +   database   +   "   -u   "   +   user   +   "   -p" 
+ password + " --result-file=" + filepath;

这句话中,没有写明执行该命令的目录,所以无法执行此命令,应该改为:
String   stmt1   =   "D:\\mysql5027\\bin\\mysqldump   "   +   database   +   "   -u   "   +   user   +   "   -p" 
+ password + " --result-file=" + filepath;

这样子,就ok了
xuyanli 2008-01-25
  • 打赏
  • 举报
回复
这个异常是怎么回事呢?
在 ‘ at Huifu.main(Huifu.java:22)’ 这一行的内容是:Runtime.getRuntime().exec(stmt1);
xuyanli 2008-01-25
  • 打赏
  • 举报
回复
在cmd中运行命令时,没有错误。
但是在java编译上面的代码时,出现了下列异常:
java.io.IOException: CreateProcess: mysqladmin -u root -plcMasDb07 create te_test error=2
at java.lang.ProcessImpl.create(Native Method)
at java.lang.ProcessImpl.<init>(Unknown Source)
at java.lang.ProcessImpl.start(Unknown Source)
at java.lang.ProcessBuilder.start(Unknown Source)
at java.lang.Runtime.exec(Unknown Source)
at java.lang.Runtime.exec(Unknown Source)
at java.lang.Runtime.exec(Unknown Source)
at Huifu.main(Huifu.java:22)
xuyanli 2008-01-24
  • 打赏
  • 举报
回复
如何使用java程序备份和恢复MySql数据库?
注:要将mysql的bin目录加入到环境变量Path中

将MySql中的数据库导出到文件中 备份

import java.io.*;
import java.lang.*;

public class BeiFen {

public static void main(String[] args) {
// 数据库导出
String user = "root"; // 数据库帐号
String password = "root"; // 登陆密码
String database = "test"; // 需要备份的数据库名
String filepath = "e:\\test.sql"; // 备份的路径地址

String stmt1 = "mysqldump " + database + " -u " + user + " -p"
+ password + " --result-file=" + filepath;
/*
* String mysql="mysqldump test -u root -proot
* --result-file=d:\\test.sql";
*/

try {
Runtime.getRuntime().exec(stmt1);
System.out.println("数据已导出到文件" + filepath + "中");
}
catch (IOException e) {
e.printStackTrace();
}
}
}



将数据从磁盘上的文本文件还原到MySql中的数据库

import java.io.*;
import java.lang.*;

/*
* 还原MySql数据库
* */
public class Recover {

public static void main(String[] args) {

String filepath = "d:\\test.sql"; // 备份的路径地址
//新建数据库test

String stmt1 = "mysqladmin -u root -proot create test";

String stmt2 = "mysql -u root -proot test < " + filepath;
String[] cmd = { "cmd", "/c", stmt2 };

try {
Runtime.getRuntime().exec(stmt1);
Runtime.getRuntime().exec(cmd);
System.out.println("数据已从 " + filepath + " 导入到数据库中");
} catch (IOException e) {
e.printStackTrace();
}
}
}

songduanlei 2008-01-22
  • 打赏
  • 举报
回复
还是用windows的程序吧,直接更快更加方便
xuyanli 2008-01-22
  • 打赏
  • 举报
回复
能否用java调用mysql命令的形式得到数据库的备份?
我想写成java文件,然后写一个shell文件来调用此java文件,实现数据库的备份。
c2one 2008-01-16
  • 打赏
  • 举报
回复
写一个bat文件,用命令来备份,跟着用java定时调用
如果win的话,干脆用win的任务来做就行了

62,623

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧