java 项目中恢复Linux MySQL数据库sh
来源:互联网 发布:java 文件上传md5校验 编辑:程序博客网 时间:2024/06/05 07:34
项目中使用Linux脚本恢复MySQL数据库
Java Linux 脚本执行 source 恢复数据库
//备份数据库 /** * 备份MySQL脚本 linux sh 自定义目录 * */ public static void backupMysqlBylinuxShell(String selectPathRoute) { String databaseRoute = createDatabaseBackupPath(selectPathRoute); List<String> databaseinfo = getDatabaseName(); String[] cmds = new String[]{"/bin/bash", "-c", "DB_HOST=\"" + databaseinfo.get(3) + "\"\n" + " DB_NAME=\"" + databaseinfo.get(0) + "\"\n" + " DATE=\"$(date +\"%Y-%m-%d-%H%M%S\")\" \n" + " DB_USER=\"" + databaseinfo.get(1) + "\"\n" + " DB_PASS=\"" + databaseinfo.get(2) + "\"\n" + " BAKUP_FILE=" + databaseRoute + "/$DB_NAME-$DATE.sql\n" + " SQL_OPT=\"-u$DB_USER -p$DB_PASS -h $DB_HOST $DB_NAME\"\n" + " /usr/bin/mysqldump --opt $SQL_OPT > $BAKUP_FILE\n" + " echo 'Backup success。'\n"}; try { RmtShellExecutor.execArrayCmd("commands", cmds); } catch (Exception e) { e.printStackTrace(); } } //------------------------ /** * 恢复数据库 * sqlPath 资源文件路径 * databaseinfo 数据库信息 */ public static void recoveryDataBase(String sqlPath) throws Exception { List<String> databaseinfo = getDatabaseName(); String[] cmds = new String[]{"/bin/bash", "-c", "DB_HOST=\"" + databaseinfo.get(3) + "\"\n" + " DB_NAME=\"" + databaseinfo.get(0) + "\"\n" + " DB_USER=\"" + databaseinfo.get(1) + "\"\n" + " DB_PASS=\"" + databaseinfo.get(2) + "\"\n" + " mysql -u$DB_USER -p$DB_PASS -h $DB_HOST $DB_NAME <<EOF \n" + " source " + sqlPath + ";\n" + "EOF\n" + // !注意 EOF要顶行 " exit; \n"}; RmtShellExecutor.execArrayCmd("commands", cmds); }//------------------------------ /** * 获取数据库信息 */ public static List<String> getDatabaseName() { String databaseName = "namexxx"; String userName = "root"; String pwd = "root"; String jdbcip = "127.0.0.1"; List<String> dataInfo = new ArrayList<String>(4); try { InputStream is = MySqlImportAndExport.class.getClassLoader().getResourceAsStream("db.properties"); Properties properties = new Properties(); properties.load(is); databaseName = properties.getProperty("jdbc.database"); log.debug("获取数据库名称:" + databaseName); dataInfo.add(databaseName); userName = properties.getProperty("jdbc.username"); dataInfo.add(userName); log.debug("获取用户名:" + userName); pwd = properties.getProperty("jdbc.password"); dataInfo.add(pwd); log.debug("获取密码:" + pwd); jdbcip = properties.getProperty("jdbc.mysqlIp"); dataInfo.add(jdbcip); } catch (IOException e) { e.printStackTrace(); } return dataInfo; }//------------------------------------ /** * 执行linux shell * @param message * @param args * @throws Exception */ public static void execArrayCmd(String message, String[] args) throws Exception { log.debug("---执行linux shell ---"); log.debug(message + ":"); Process process = Runtime.getRuntime().exec(args); for (String arg : args) { System.out.println(arg); System.out.print(" "); } BufferedReader errorReader = new BufferedReader(new InputStreamReader( process.getInputStream())); String line = null; while ((line = errorReader.readLine()) != null) { System.err.println(line); } errorReader.close(); BufferedReader infoReader = new BufferedReader(new InputStreamReader( process.getErrorStream())); while ((line = infoReader.readLine()) != null) { System.out.println(line); } infoReader.close(); log.debug(""); }
0 0
- java 项目中恢复Linux MySQL数据库sh
- java恢复备份mysql数据库
- Java 备份恢复MySQL数据库
- 数据恢复:如何恢复Linux中意外删除的Oracle和MySQL数据库
- linux在sh中运行java程序
- java调用SH备份MYSQL数据库 测试通过
- Linux下Mysql数据库备份和恢复
- 【linux mysql】数据库恢复还…
- linux下MySQL数据库备份与恢复
- 备份恢复数据库-中谷项目
- mysql中数据库的备份与恢复
- java Mysql 数据库备份和恢复
- Java备份和恢复Mysql数据库
- java应用备份和恢复mysql数据库
- java项目中使用JDBC连接mysql数据库查询数据
- linux备份mysql数据库与恢复mysql备份数据
- linux备份mysql数据库与恢复mysql备份数据
- java 项目连接mysql 数据库
- HEVC/H.265视频软硬件编码
- poj2676Sudoku 暴搜
- 结构体简介
- *POJ 3728 - The merchant(LCA‘ Tarjan)
- 关于苹果证书的一些理解
- java 项目中恢复Linux MySQL数据库sh
- 深入理解Hadoop集群和网络
- H.265与H.264
- 整合spring2.5+hibernate3+struts2.0
- 【Cocos游戏实战】功夫小子第七课之游戏主功能场景逻辑功能和暂停功能场景的分析和实现
- attribute与parameter区别
- java参数传递(传值与引用)
- hdu1016
- 恢复 rm -rf * 误删数据