2012-09-27 10 views
8

Potrzebuję uzyskać ścieżkę instalacji MySQL, aby wykonać eksport i import bazy danych za pomocą kodu Java. obecnie pracuję z eclipse. Potrzebuję uzyskać ścieżkę instalacji w zmiennej String "mySqlPath".Uzyskaj ścieżkę instalacji MySQL

File fMysqlPath = new File("C:\\Program Files\\MySQL\\MySQL Server 5.1\\bin\\"); 
String executeCmd = "mysqldump -u " + Constants.DB_USER + " -p" + 
        Constants.DB_PASSWORD + " " + Constants.DB_NAME + " -r " + 
        FilePath + "\\" + FileName; 
Process runtimeProcess = Runtime.getRuntime().exec(executeCmd, null, fMysqlPath); 

Oto, co zrobiłem. Ma to problem zależności.

Jak mogę to rozwiązać?

+0

jaki problem napotykasz? – gprathour

+0

@GPS po uruchomieniu programu w innym systemie, ścieżka mysql dostaje błąd. – Gapchoos

Odpowiedz

10

Czy próbowałeś to:

import java.sql.*; 
import javax.sql.*; 

public class MysqlPathFinderDemo{ 

public static void main(String args[]){ 
String dbtime; 
String dbUrl = "jdbc:mysql://your.database.domain/yourDBname"; 
String dbClass = "com.mysql.jdbc.Driver"; 
String query = "Select * FROM users"; 

try { 

     Class.forName("com.mysql.jdbc.Driver"); 
     Connection con = DriverManager.getConnection (dbUrl); 
     Statement stmt = con.createStatement(); 
     res = Myconnection.st.executeQuery("select @@datadir"); 
     String Mysqlpath = ""; 

     while(res.next()){ 
      Mysqlpath=res.getString(1) ; 
     } 

     Mysqlpath = Mysqlpath.replace("Data", "bin"); 
     System.err.println("Mysql path is :"+a); 
    } catch(Exception ee) { 
    } 
} 
} 
+1

+1, to jest jeden dobry hack;) – Sujay

+2

czy mogę zamiast tego użyć @@ basedir? – Gapchoos

+0

@Franklin Tworzy wyjątek. w tym przypadku moja ścieżka MySQL to C: \ Documents and Settings \ All Users \ Application Data \ MySQL \ MySQL Server 5.5 \ bin; Instrukcja replace zastępuje dane aplikacji jako bin aplikacji. – Gapchoos

3

Można bezpośrednio MySQL Query i zadać sobie pytanie, aby dać Ci ścieżkę:

SHOW VARIABLES LIKE 'basedir'; 

lub łatwiej,

SELECT @@basedir; 

powinno dać ścieżkę instalacji. Obie powinny spowodować coś takiego:

C: Program Files \ \ MySQL \ MySQL Server 5.1 \

datadir jest odpowiednikiem uzyskać ścieżkę katalogu danych (gdzie dane leży).