2010-02-10 36 views
0

我正在使用-msqldump來備份遠程計算機中的數據庫。如果防火牆已啓用,我無法登錄到其他主機。是否有解決此問題的方法。MySQl轉儲不能與防火牆配合使用

我已將以下代碼發佈到Web服務器並嘗試從另一個域進行備份。

String dumpCommand = "D:/MySQL/MySQL Server 5.0/bin/mysqldump -h"+scheduleInfo.get("hostName")+" -u"+scheduleInfo.get("user")+" -p"+scheduleInfo.get("password")+" "+scheduleInfo.get("dbName"); 
     Runtime rt = Runtime.getRuntime(); 
     try 
     { 
      Process proc = rt.exec(dumpCommand);      
      InputStream in = proc.getInputStream();      
      BufferedReader br=new BufferedReader(new InputStreamReader(in)); 
      String line=null; 
      File directory=new File(context.getJobDetail().getDescription()); 
      if(!directory.exists()) 
      { 
       directory.mkdir(); 
      } 
      File f=new File(directory.getAbsolutePath()+"\\"+context.getTrigger().getJobName()+".sql"); 
      System.out.println(f.getAbsolutePath()); 
      FileWriter fw=new FileWriter(f,true); 
      fw.append("CREATE DATABASE /*!32312 IF NOT EXISTS*/ `"+scheduleInfo.get("dbName")+"` /*!40100 DEFAULT CHARACTER SET latin1 */;\nUSE `"+scheduleInfo.get("dbName")+"`;\n"); 
      while((line=br.readLine())!=null) 
      { 
       System.out.println(line); 
       fw.append(line+"\n"); 
      } 
      fw.close(); 
     } 
+0

這些是什麼類型的主機?你有命令行訪問它們嗎? – 2010-02-11 12:48:11

+0

>如果防火牆啓用,我無法登錄到其他主機。有沒有解決這個問題的方法。禁用或修改防火牆。 – ceejayoz 2011-01-11 03:18:28

回答

1

如果你正在談論與MySQL 3306端口關閉,到外面的世界,你通常會使用一個服務器端腳本語言如PHP連接到數據庫,產生的垃圾,並把它傳遞Web服務器直到請求者。

這裏有各種各樣的腳本,一些調用遠程命令行mysqldump,一些使用PHP內置的mySQL函數連接到數據庫。

如果這是一次性的事情,你想看看你會遠程安裝的phpMyAdmin