java實現mysql數據備份

/**
     * @param hostIP       ip地址,能夠是本機也能夠是遠程
     * @param userName     數據庫的用戶名
     * @param password     數據庫的密碼
     * @param savePath     備份的路徑
     * @param fileName     備份的文件名
     * @param databaseName 須要備份的數據庫的名稱
     * @return
     */
    public boolean backup(String hostIP, String userName, String password, String savePath, String fileName,
                          String databaseName) {
        File saveFile = new File(savePath);
        if (!saveFile.exists()) {// 若是目錄不存在
            saveFile.mkdirs();// 建立文件夾
        }
        String exePath = "mysqldump";
        if (PlatformUtil.isWindows()) {
            exePath = mysqldumpExePath;
        }
        //拼接命令行的命令
        StringBuilder stringBuilder = new StringBuilder();
        stringBuilder.append(exePath).append(" --opt").append(" -h").append(hostIP);
        stringBuilder.append(" --user=").append(userName).append(" --password=").append(password)
        /*.append(" --lock-all-tables=true")*/;
        stringBuilder.append(" --result-file=").append(savePath + "/" + fileName).append(" --default-character-set=utf8 ")
                .append(databaseName);
        try {
            //調用外部執行exe文件的javaAPI
            Process process = CMDUtil.execProcess(stringBuilder.toString());
            process.waitFor();
            InputStream errorStream = process.getErrorStream();
            String s = IOUtils.toString(errorStream, "gbk");
            System.out.println(s);
            int value = process.exitValue();
            if (value == 0) {// 0 表示線程正常終止。
                return true;
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        return false;
    }

 

在 windows下,java

mysqldumpExePath
表示的是mysqldump.exe的路徑,包括文件名。
相關文章
相關標籤/搜索