MySQLデータベースのバックアップとリカバリのJAVA方法

通常のMySQLデータベースのバックアップとリカバリの時間で、主に達成するためにCMDにmysqlコマンドを使用して実行。  
例えば:
  mysqldumpを-h127.0.0.1 -uroot -p123456テスト> D:ディスクDに/test.sql ---テストデータベースのバックアップ
  mysqlの-h127.0.0.1 -uroot -p123456テスト<test.sql内--- Dスクリプトのデータベースのバックアップ、データベースへのリストア(データベースが存在するように!)
       実際には、作業を完了するためにmsqldump.exeとmysql.exe下の次のコールのMySQL binディレクトリのインストールパスで、コマンドラインcmdを呼び出します
だから、Javaコードで、我々はまた、mysqldump.exeとmysql.exeを呼び出すことで、バックアップと復旧作業を完了する必要があります  

Runtime.getRuntime()のexec(String型の引数);. Javaコールexeファイルの外部ソフトウェアを実行するには、APIコマンド。

RunTime.getRuntime()。Execは、()実行スクリプトコマンドについて説明します

  • データベースのバックアップ特定のコード
パッケージcom.cxx.backupdb; 
 
インポート java.io. * ;
 輸入java.text.SimpleDateFormatの;
 インポートjava.util.Date; 
 
/ ** 
 * @author:CXX 
 *データベースのバックアップと復元
 * @Date:2018年4月28日を午後七時56 
 * / 
パブリック クラスDbOperate { 
 
    / ** 
     *バックアップデータベースDB 
     * @param ルート
     *の@paramのPWD 
     * @param DBNAME 
     * @param backPath 
     * @param backName
      * / 
    パブリック 静的 ボイドDBBACKUPは、(文字列のルートは、文字列のPWDは、文字列DBNAME、文字backPath、列backName)をスロー例外{ 
        文字列pathSql = backPath + backName。
        fileSqlファイル = 新しいファイル(pathSql)。
        // 创建备份SQL文件
        場合(!{fileSql.exists())
            fileSql.createNewFile(); 
        } 
        // mysqldumpを-hlocalhost -uroot -p123456 DB> /home/back.sql 
        StringBufferのSB = 新規のStringBuffer(); 
        sb.append( "mysqldumpを" ); 
        sb.append( "-h127.0.0.1" ); 
        sb.append("-u" + ルート)。
        sb.append( "-p" + PWD)。
        sb.append( " "+ DBNAME +">" ); 
        sb.append(pathSql)。
        System.out.println( "CMD命令为:" + sb.toString()); 
        ランタイムランタイム = Runtime.getRuntime()。
        System.out.println( "开始备份:" + DBNAME)。
        プロセス処理 =のRuntime.exec( "CMD / C" + sb.toString())。
        System.out.println( "备份成功!" );
 
    @param DBNAME 
     * @param filePathに
     * MySQLの-hlocalhost -uroot -p123456 DB </home/back.sql 
     * / 
    パブリック 静的 ボイドDBRESTORE(文字列ルート、文字列PWD、文字列dbnameは、文字列filePathに){ 
        StringBuilderのSB = 新規のStringBuilder() ; 
        sb.append( "mysqlの" ); 
        sb.append( "-h127.0.0.1" ); 
        sb.append( "-u" + ルート)。
        sb.append( "-p" + PWD)。
        sb.append( " "+ DBNAME +"<" )。
        SB。
        System.out.println( "){sb.toString())。
        ランタイムランタイム = Runtime.getRuntime()。
        System.out.println( "开始还原数据" );
        試す{ 
            プロセスプロセス =のRuntime.exec( "CMD / C" + sb.toString())。
            入力ストリームは、 = )(process.getInputStream。
            BufferedReaderのをBF = 新しい BufferedReaderの(新しい InputStreamReaderの( "UTF8"、です))。
            文字列の行 = nullをしばらく((ライン= bf.readLine())!= nullで
                のSystem.out.println(ライン);
            } 
            is.close()。
            bf.close(); 
        } キャッチ(IOExceptionを電子){ 
            e.printStackTrace(); 
        } 
        のSystem.out.println( "还原成功!" ); 
    } 
 
 
 
    パブリック 静的 ボイドメイン(文字列[]引数)スロー例外{ 
        文字列backName = 新しいてSimpleDateFormat( "YYYY-MM-DD-HH-MM-SS")フォーマット(新しい日付())+ "SQL"を
        DbOperate.dbBackUp( "ルート"、 "123456"、 "KS"、 "F:/" 、backName)。
        DBRESTORE("ルート"、 "123456"、 "DB"、 "F://2018-04-30-19-28-28.sql" )。
    } 
 
}

 

 

おすすめ

転載: www.cnblogs.com/kise-ryota/p/11291491.html