zoukankan      html  css  js  c++  java
  • java 实现mysql 的备份与恢复,全部代码

    实现mysql 的备份与恢复

    只要两个文件(1) JavaMysql.java (2)prop.properties

    package mysql;
    import java.io.File;
    import java.io.IOException;
    import java.io.InputStream;
    import java.util.Properties;
    public class JavaMysql {
    /**
    *
    * mysql数据备份 接收脚本名,并返回此路径
    *
    * sql为备份的脚本名比如xxx.sql
    *
    */
    //备份数据库
    public static void backup(String sql) {

    Properties pros = getPprVue("prop.properties");

    // 这里是读取的属性文件,也可以直接使用

    String username = pros.getProperty("username");

    String password = pros.getProperty("password");

    // 得到MYSQL的用户名密码后调用 mysql 的 cmd:

    String mysqlpaths = pros.getProperty("mysqlpath");
    String databaseName = pros.getProperty("databaseName");
    String address = pros.getProperty("address");
    String sqlpath = pros.getProperty("sql");
    File backupath = new File(sqlpath);
    if (!backupath.exists()) {
    backupath.mkdir();
    }

    StringBuffer sb = new StringBuffer();

    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();
    }

    }

    // 读取属性值

    public static Properties getPprVue(String properName) {

    InputStream inputStream = JavaMysql.class.getClassLoader().getResourceAsStream(properName);
    Properties p = new Properties();

    try {
    p.load(inputStream);
    inputStream.close();
    } catch (IOException e) {
    e.printStackTrace();
    }

    return p;

    }
    //还原备份
    public static void load(String filename) {
    Properties pros = getPprVue("prop.properties");

    // 这里是读取的属性文件,也可以直接使用

    String root = pros.getProperty("jdbc.username");

    String pass = pros.getProperty("jdbc.password");

    // 得到MYSQL的用户名密码后调用 mysql 的 cmd:

    String mysqlpaths = pros.getProperty("mysqlpath");
    String sqlpath = pros.getProperty("sql");
    String filepath = mysqlpaths + sqlpath + filename; // 备份的路径地址

    // 新建数据库finacing
    String stmt1 =mysqlpaths+ "mysqladmin -u " + root + " -p" + pass + " create finacing"; // -p后面加的是你的密码
    String stmt2 = mysqlpaths+"mysql -u " + root + " -p" + pass + " finacing < "+ filepath;
    String[] cmd = { "cmd", "/c", stmt2 };
    try {
    Runtime.getRuntime().exec(stmt1);
    Runtime.getRuntime().exec(cmd);
    System.out.println("数据已从 " + filepath + " 导入到数据库中");
    } catch (IOException e) {
    e.printStackTrace();
    }

    }

    public static void main(String[] args) throws IOException {

    // backup("2221.sql");
    // load("2221.sql");

    //load("xx.sql");
    }


    }

    prop.properties

    username = root 
    password = 123456
    mysqlpath = C://Program Files//MySQL//MySQL Server 5.1//bin//
    sql = E://MySQl//
    address=localhost
    databaseName=oa2

    好了,这个就完成了,经过测试的,绝对可以用

    宝贝网址:

  • 相关阅读:
    servlet 将输入内容通过拼接页面的方式显示出来
    localstorage和vue结合使用
    vue的通讯与传递props emit (简单的弹框组件)
    jquery插件之选项卡
    详解Cookie纪要
    jsonp
    滚动条样式
    axios基本使用
    IOS安卓常见问题
    简单购物车
  • 原文地址:https://www.cnblogs.com/W203654/p/2317099.html
Copyright © 2011-2022 走看看