import java.io.File;
import java.io.IOException;
import java.util.ResourceBundle;
public class TestMysqlBackup {
/**
* 备份
* @param sql
* @throws Exception
*/
public static void backup(String sql) throws Exception{
ResourceBundle pros = WZUitl.getPropertie("prop");
// 这里是读取的属性文件,也可以直接使用
String username = pros.getString("username");
String password = pros.getString("password");
// 得到MYSQL的用户名密码后调用 mysql 的 cmd:
String mysqlpaths = pros.getString("mysqlpath");
String databaseName = pros.getString("databaseName");
String address = pros.getString("address");
String sqlpath = pros.getString("sql");
File backupath = new File(sqlpath);
if (!backupath.exists()) {
backupath.mkdir();
}
StringBuffer sb = new StringBuffer();
sb.append("cmd.exe /c ");
sb.append(mysqlpaths);
sb.append("\\mysqldump ");
sb.append("--opt ");
sb.append("-h ");
sb.append(address);
sb.append(" ");
sb.append("--user=");
sb.append(username);
sb.append(" ");
sb.append("--password=");
sb.append(password);
sb.append(" ");
sb.append("--lock-all-tables=true ");
sb.append("--result-file=");
sb.append(sqlpath);
sb.append(sql);
sb.append(" ");
sb.append("--default-character-set=utf8 ");
sb.append(databaseName);
Runtime cmd = Runtime.getRuntime();
try {
Process p = cmd.exec(sb.toString());
} catch (IOException e) {
e.printStackTrace();
}
}
/**
* 恢复备份
* @throws Exception
*/
public static void recover() throws Exception{
String path="mysql -uroot -padmin wj < F:\\MySQl\\loowj.sql";
//注意文件路径中存在空格,需要再空格地方加上" "引上空格
java.lang.Runtime.getRuntime().exec("cmd.exe /c C:\\Program\" \"Files\\MySQL5\\bin\\"+path);
}
public static void main(String[] args) {
try {
backup("loowj.sql");
} catch (Exception e) {
e.printStackTrace();
}
}
}
转载于:https://my.oschina.net/wjgood/blog/30434