您的位置:首页 > 数据库 > MySQL

MySql数据库导出(备份)

2017-09-08 22:47 134 查看
/**

     * MySql数据库导出

     * @param hostIp MySQL数据库所在服务器地址IP

     * @param userName 进入数据库所需要的用户名

     * @param password 进入数据库所需要的密码

     * @param databaseName 要导出的数据库名

     * @return list

     *         list.get(0) 是否成功  返回true表示导出成功,否则返回false。

     *         list.get(1) 保存路径

     *         list.get(2) 文件名称

     *         

     */

     public static List exportDatabase(String hostIp,String userName, String password, String databaseName) {

            List reList = new ArrayList();

            boolean flag = true;

            //生成保存路径

            String savePath = YYTConstant.file_dir_mysql + "/"

                                + YYTConstant.file_dir_backup + "/"

                                + DateUtil.getThisYear() + "/"+ DateUtil.getThisDate();

            //生成文件名称

            String fileName = DateUtil.getSystemDateByyyyyMMddHHmmss() + "-yytdb.sql";

            

            try {

                

                System.out.print(PropKit.get("filePath") + savePath);

                File file = new File(PropKit.get("filePath") +"/"+ savePath);

                

                if (!file.exists()) {// 如果目录不存在

                    file.mkdirs();    // 创建文件夹

                }

                

                StringBuilder stringBuilder = new StringBuilder();

                stringBuilder.append("mysqldump").append(" --opt").append(" -h").append(hostIp).append(" "+databaseName);

                stringBuilder.append(" -u").append(userName) .append(" -p").append(password);

                stringBuilder.append(" --result-file=").append(PropKit.get("filePath") + savePath + "/"+ fileName).append(" --default-character-set=utf8 ");

                

                try {

                    System.out.print("---------------开始执行数据库备份");

                    System.out.print("---数据库备份"+stringBuilder.toString());

                    Process process = Runtime.getRuntime().exec(stringBuilder.toString());

                    if (process.waitFor() == 0) {// 0 表示线程正常终止。

                        System.out.print("---------------数据库备份成功");

                        flag =  true;

                    }else{

                        System.out.print("---------------数据库备份失败");

                        flag = false;

                    }

                } catch (IOException e) {

                    flag = false;

                    e.printStackTrace();

                } catch (InterruptedException e) {

                    flag = false;

                    e.printStackTrace();

                }

                

            } catch (Exception e) {

                flag = false;

                e.printStackTrace();

            }

            

            reList.add(flag);

            reList.add(savePath);

            reList.add(fileName);

            

            return reList;

        }
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: