2016-11-11 8 views
-2

Ich habe das jetzt ein wenig gesucht.mysqldump funktioniert einfach nicht

Ich habe genau diesen Befehl von der Kommandozeile aus und ich weiß, es funktioniert:

mysqldump --user=user --password=password db > C:\\db.sql 

jedoch in Java, überspringt es genau richtig und sagt: die Sicherung fehlgeschlagen. Was vermisse ich ?:

 Process exec = Runtime.getRuntime().exec("mysqldump --user=user --password=password db > C:\\db.sql"); 

     int processComplete = exec.waitFor(); 

     if(processComplete == 0) 
      log.info("Backup successful."); 
     else 
      log.info("Backup failed. STOP GETTING HERE :("); 

Irgendwelche Ideen? Ich habe mir hier andere Fragen angeschaut, einschließlich der Verwendung eines ProcessBuilders, aber nichts hat funktioniert.

bearbeiten

versucht, dies:.

exec = Runtime.getRuntime() exec ("C: \ Programme \ MySQL \ MySQL Server 5.5 \ bin \ mysqldump.exe --user = user --password = Passwort db> C: \ db.sql ");

Kein Glück auch nicht.

Ich habe immer versucht/statt \ und hatte kein Glück. Ich habe MySQL neu gestartet und Berechtigungen überprüft.

+0

Was ist das Arbeitsverzeichnis in der Befehlszeile und was ist das Arbeitsverzeichnis, wenn Sie versuchen, den Befehl von Java auszuführen? – Shadow

+0

Arbeitsverzeichnis mit dem Cmd ist das C: und der Befehl von Java ist buchstäblich, was Sie sehen. – user2124871

+0

Auch - Warum bekomme ich Anfragen zu schließen und downvoted? Zumindest erkläre es ... – user2124871

Antwort

0

Problem scheint damit verwandt zu sein, wie ich mysqldump in meinem Code verwendete. Wenn ich den Befehl zu diesem umformte:

Process exec = Runtime.getRuntime().exec("mysqldump -u user -ppassword db -r C:\\db.sql"); 

Es funktionierte.

Nur jemand möchte die Lösung in der Zukunft.

Verwandte Themen