2016-04-09 14 views
0

mysqldumpコマンドを使用してjavaのデータベースをバックアップしましたが、ここでこのファイルを復元したいのですが、mysqlidを作成して何も応答しません。ファイルを元に戻すことはありません。javaを使用してデータベースのバックアップファイルを復元する方法

restore.addActionListener(new ActionListener() { 

      @Override 
      public void actionPerformed(ActionEvent e) { 
       try { 
//     JFileChooser fc = new JFileChooser(); 
//     
//     fc.setFileSelectionMode(JFileChooser.FILES_ONLY); 
//     int result = fc.showOpenDialog(frame); 
//     if (result == JFileChooser.APPROVE_OPTION) { 
//      File file = fc.getSelectedFile(); 
//      pathTobeSaved = file.getAbsolutePath(); 

        //} 
//     JOptionPane.showMessageDialog(null, "Starting"); 
//     String cmd = "mysql -u root -h localhost mysqlsarafi < C:\\xampp\\htdocs\\backup.sql"; 
//     JOptionPane.showMessageDialog(null, "Waiting"); 
        Process runtime = Runtime.getRuntime().exec("mysql -u root mysqlsarafi < C:\\xampp\\htdocs\\backup.sql"); 
        JOptionPane.showMessageDialog(null, "Done"); 
        int complete = runtime.waitFor(); 
        JOptionPane.showMessageDialog(null, complete); 
        if(complete ==0){ 
         JOptionPane.showMessageDialog(null, "Succed"); 
        } 
        else{ 
         JOptionPane.showMessageDialog(null, "not succed"); 
        } 

       } catch (IOException e1) { 
        // TODO Auto-generated catch block 
        e1.printStackTrace(); 
       } catch (InterruptedException e1) { 
        // TODO Auto-generated catch block 
        e1.printStackTrace(); 
       } 



      } 
     }); 
+0

この問題を解決してください – Noorullah

答えて

0

私はついにそれを理解した。

問題は、この行である:

Process runtime = 
Runtime.getRuntime().exec("mysql -u root mysqlsarafi < C:\\xampp\\htdocs\\backup.sql"); 

上記のコードでは、<ストリームのリダイレクトと呼ばれます。あなたはそれについてhereを読むことができます。

残念ながら、java.lang.Runtime(単に機能しない)を使用している場合、プロセスの実行時にストリームリダイレクトを使用することはできません。

したがって、ストリームリダイレクトを使用せずに行う必要があります。それを行う方法の1つは、

mysql -u root --execute "SOURCE C:\\path\\to\\backup.sql" 

です。あなたの仕事を容易にするために

、あなたのためのソリューションです:あなたは私の答えは有用であることが分かっている場合

String cmd = "mysql -u root mysqlsarafi --execute \"SOURCE C:\\xampp\\htdocs\\backup.sql\""; 
Process runtime = Runtime.getRuntime.exec(cmd); 

は、コメントを投稿。

関連する問題