JavaによるMySQLデータベースのバックアップ

2729 ワード

プロジェクトを行うときによく遭遇するニーズの1つは、データベースのバックアップです.プロジェクトjava+mysql+windowsが開発され、データベースのバックアップの問題が発生しました.
ネット上には次のような例がたくさんあります.
import java.io.IOException;
  
public class db_deal {       
        private static String str=null;       
         public static void backup(){
                 //  mysqldump      ,  “mysqldump -u username -pPassword --opt database_name > direction/backup_name.sql”
                 str="mysqldump -u root -proot --opt   hjh >  d:/test.sql";   
 
                try { 
                         Runtime rt=Runtime.getRuntime();
                       rt.exec("cmd /c"+str);
                //Runtime.getRuntime().exec(   )              。     API
                 //    cmd     ,    str          。
                        System.out.println("successly!");
                } catch (IOException e) { 
                        e.printStackTrace();  
                        System.out.println("something wrong!");                               } 
  
        }
        public static void load(){
                str="mysql -u root -proot j2603  <  d:/test.sql";
                // mysql            。  “mysql -u Username  -pPassword   database_name     <     back_up_dir  ”
                Runtime rt=Runtime.getRuntime();
                try {
                        rt.exec("cmd /c"+str);
                        System.out.println("restore successly!");
                } catch (IOException e) {
                        e.printStackTrace();
                       System.out.println("restore fail!");
                }
        } 
}
 
彼らのこれらのプログラムは直接実行できるものではありません.MySQLのbinを環境変数に追加し、MYSQLのパスにスペースを含めることはできません.もし好きなら、このような方法を試してみてください.環境変数を追加するのが好きではないのでbatバッチファイルという方法を採用します
ファイルを新規作成batファイルはプロジェクトファイルディレクトリの下に配置されます.
c:
cd C:\Program Files\MySQL\MySQL Server 5.6\bin
mysqldump -u root -p921026 --opt   test >  d:/test1.sql

1行目のc:MySQLにインストールされたディスク、2行目はMySQLのbinフォルダパス、3行目はデータバックアップを実行します.
呼び出しbackupを記述する.batのJavaプログラム
import java.io.IOException;
public class Backup {
private static String str = null;
private static Backup b=new Backup();
public static void main(String[] args) {
backup();
}
public static void backup() {
str = b.getClass().getResource("/").getFile().toString()+"backup.bat";
try {
Runtime rt = Runtime.getRuntime();
rt.exec(str);
// runtime.getruntime().exec( )              。     api
//     cmd     ,    str          。
System.out.println("successly!");
} catch (IOException e) {
e.printStackTrace();
System.out.println("something wrong!");
}
}
}

プログラムを実行すれば、データバックアップが可能になります.