java调用mysql服务做备份与恢复
首先添加mysql的bin到环境变量,这样可以简写部分命令,并且做到不依赖系统mysql的具体安装路径。
重启计算机可以让添加的环境变量在java代码中调用时生效。(cmd中生效但java中调用没有生效,这是我遇到的情况)
java调用mysql备份命令用到:1,隐形调用cmd;2,调用第三方可执行程序;
cmd参数的说明:(详细参考地址:http://blog.csdn.net/xys_777/article/details/6164206)
cmd /c dir 是执行完dir命令后关闭命令窗口。
cmd /k dir 是执行完dir命令后不关闭命令窗口。
cmd /c start dir 会打开一个新窗口后执行dir指令,原窗口会关闭。
cmd /k start dir 会打开一个新窗口后执行dir指令,原窗口不会关闭。
备份代码:
String path = request.getSession().getServletContext().getRealPath("/");
String bakfile = "SQLBAK\\bak.sql";
String cmd = "mysqldump -u root -h 127.0.0.1 -p123456 -P 3307 --default-character-set=UTF8 --add-drop-database -B ipms2 -r " +path+bakfile;
try {
Process runtimeProcess = Runtime.getRuntime().exec(new String[] { "cmd.exe", "/c", cmd});
int processComplete = runtimeProcess.waitFor();
if (processComplete == 0)
{
System.out.println("DatabaseManager.restore: Restore Successfull");
result=true;
}
else
{
System.out.println("DatabaseManager.restore: Restore Failure!");
result=false;
}
} catch (Exception e1) {
e1.printStackTrace();
}
恢复代码:
String path = request.getSession().getServletContext().getRealPath("/");
String bakfile = "SQLBAK\\bak.sql";
String cmd = "mysql -u root -h 127.0.0.1 -p123456 -P 3307 --default-character-set=UTF8 < " +path+bakfile;
System.out.println(cmd);
boolean result=true;
try {
Process runtimeProcess = Runtime.getRuntime().exec(
new String[] { "cmd.exe", "/c", cmd });
int processComplete = runtimeProcess.waitFor();
if (processComplete == 0) {
System.out
.println("DatabaseManager.restore: Restore Successfull");
result = true;
} else {
System.out.println("DatabaseManager.restore: Restore Failure!");
result = false;
}
} catch (Exception e1) {
e1.printStackTrace();
}
java调用mysql服务做备份与恢复的更多相关文章
- 24、jQuery常用AJAX-API/Java调用MySQL / Oracle过程与函数
1)掌握jQuery常用AJAX-API 2)掌握Java调用MySQL / Oracle过程与函数 一)jQuery常用AJAX-API 目的:简化客户端与服务端进行局部刷新的异步通讯 (1)取 ...
- Java调用MySQL存储过程
Java调用MySQL的存储过程,需要用JDBC连接,环境eclipse 首先查看MySQL中的数据库的存储过程,接着编写代码调用 mysql> show procedure status; + ...
- Java调用MySql数据库函数
Java调用MySql数据库函数 /** * 调用mysql的自定义函数 * */ private void test() { logger.info("show task start &q ...
- windows下Java调用mysql的客户端备份和恢复
这种东西没啥好聊的,其实就是Java执行dos界面下的命令,不过有些要注意就是了,真实dos下面的命令和java调用的windows系统的接口其实还是有一点不同. /** * @param hostI ...
- java 调用mysql的存储过程(简单示例)
首先我在mysql的test数据库里定义了一个student表: create table student4( id int primary key, sanme char(5) ); 插入几 ...
- JAVA 调用mysql存储过程
public class Test { //连接mysql数据库 public static final String DRIVER_CLASS = "com.mysql.jdbc.Driv ...
- java调用ws服务
1.找到ws服务地址,例如:http://www.webxml.com.cn/WebServices/MobileCodeWS.asmx 2.新建项目 3.进入命令行窗口,进入当前项目src目录下,然 ...
- 演示Java如何调用Mysql的过程和函数
这里只演示Java如何调用Mysql的过程和函数 --------------------------------------------------------------------------- ...
- mysql 服务端事务和客户端事务对比分析
之前做mysql事务测试的时候都是在mysql服务端存储过程里面包含事务. 例如: CREATE DEFINER=`root`@`localhost` PROCEDURE `Test`(out deb ...
随机推荐
- Spring JdbcTemplate 方法详解
JdbcTemplate主要提供以下五类方法: execute方法:可以用于执行任何SQL语句,一般用于执行DDL语句: update方法及batchUpdate方法:update方法用于执行新增.修 ...
- C++箴言:理解typename的两个含义
C++箴言:理解typename的两个含义 问题:在下面的 template declarations(模板声明)中 class 和 typename 有什么不同? template<class ...
- System.Properties和System.getenv区别
网上很多使用的是getProperties.说获得系统变量,但是其实不正确.getProperties中所谓的"system properties"其实是指"java s ...
- [Head First设计模式]生活中学设计模式——迭代器模式
系列文章 [Head First设计模式]山西面馆中的设计模式——装饰者模式 [Head First设计模式]山西面馆中的设计模式——观察者模式 [Head First设计模式]山西面馆中的设计模式— ...
- [Linux] 账户管理命令(一)
用户和用户组 Linux用户组的所有信息都存放在/etc/group文件中.具有某种共同特征的用户集合起来就是用户组(Group).用户组(Group)配置文件主要有 /etc/group和/etc/ ...
- Go - 项目收藏
谷歌官方维护了一个基于go语言的开源项目列表: https://github.com/golang/go/wiki/Projects Web框架 web.go.beego Go项目 httpmq:A ...
- MySQL中find_in_set()和in的区别
弄个测试表来说明两者的区别 CREATE TABLE `test` ( `id` int(8) NOT NULL auto_increment, `name` varchar(255) NOT NUL ...
- 【Android学习】Windows下Android环境搭建
一. JDK下载配置 直接百度,很简单. 二.android JDK下载配置 1.进入下载官网(需要FQ):https://developer.android.com/studio/index.ht ...
- C和指针 第三章 四种作用域
代码块作用域: 任何位于一对花括号之间是一个代码块,代码块内声明的标识符具有代码块作用域,嵌套代码块内,内部变量会屏蔽外部相同标示的标示符,非嵌套代码块,不会同时处于活动状态所以不会屏蔽. int m ...
- h5 hdf5 文件转 tif 流程
由于需要对h5(hdf5)格式的dem数据进行拼接,但是arcgis不能识别h5的地理参考信息,所以先将h5文件转为带地理参考的tif文件,然后再进行拼接. 工具:arcgis+envi 1.用arc ...