MySql+Java+backup

  • Themenstarter Themenstarter Gast2
  • Beginndatum Beginndatum
Status
Nicht offen für weitere Antworten.
G

Gast2

Gast
Hallo zusammen,
weiß jemand wie ich von java aus ein backup auf eine mySql datenbank mache??
 
z.B. unter windows in der dosbox unter mysql\bin:

Code:
mysqldump.exe myDatenbank > backup.sql
 
weil ich unter java mit einem button druck ziemlich viele tabelleninhalte lösche und bevor der button gedrückt wird soll ein backup gemacht werden um die daten zu sichern.
 
also ich hab das jetzt ausgeführt
Code:
Runtime.getRuntime().exec("cmd /C/Programme/MySQL/MySQL Server 6.0/bin/mysqldump.exe studio backup.sql");


ich hab keine Exception bekommen,aber wirklich was gemacht hat es auch nicht
 
vor dem backup.sql fehlt das > zeichen, dass alles in die backup.sql reingeschrieben werden soll
 
Code:
Runtime.getRuntime().exec("cmd /C/Programme/MySQL/MySQL Server 6.0/bin/mysqldump.exe studio > backup.sql");

hab das jetzt ausgeführt passiert leider auch nichts.
Wo genau speichert er die Datei ab?Bin alle ordner durch gegangen
 
mach das mal aus der dosbox heraus. der speichert das ins bin-verzeichnis von mysql

bzw. prüf mal ob es bei mysql 6 eine mysqldump.exe überhaupt gibt...
 
ja gibt es.
wenn ich es aus dos ausführe bekomm ich folgenden fehler
Microsoft Windows XP [Version 5.1.2600]

C:\Programme\MySQL\MySQL Server 6.0\bin>mysqldump.exe studio > backup.sql
mysqldump: Got error: 1045: Access denied for user 'ODBC'@'localhost' (using pas
sword: NO) when trying to connect

C:\Programme\MySQL\MySQL Server 6.0\bin>
 
C:\Programme\MySQL\MySQL Server 6.0\bin>mysqldump.exe -u root [optional -password] studio > backup.sql
mysqldump: Got error: 1045: Access denied for user 'root'@'localhost' (using pas
sword: YES) when trying to connect

C:\Programme\MySQL\MySQL Server 6.0\bin>

wo muss ich das passwort eingeben
 
Code:
C:\Programme\MySQL\MySQL Server 6.0\bin>mysqldump.exe -u root -deinPassword studio > backup.sql
deinPassword durch dein passwort ersetzen nehme ich an... ;-)
 
hab ich schon versucht mit und ohne das minus

mit minus kommt

unknown option -6

ohne minus
gleicher fehler wie oben.
 
cool danke so funktioniert es!!!!abe rleider nur aus der dos-konsole raus wenn ich es aus meinem java programm ausführe gehts nimmer 🙁
Code:
Runtime.getRuntime().exec("cmd /C/Programme/MySQL/MySQL Server 6.0/bin/mysqldump.exe studio -h localhost -a -C -c -e --user=root --password=passwort > backup/backup%Date%.sql");

datei wird ohne inhalt erstellt
 
von java aus habe ich auch probleme 🙁
Code:
private void dbdump(){
        try{
        Runtime.getRuntime().exec("cmd.exe D:/XAMPP/mysql/bin/mysqldump.exe -u root DBname > d:\backup.sql");
      
        }catch(Exception e){
            System.out.println("oh je "+ e);
        }
    }

hat das vielleicht etwas mit den / und \ zu tun ?
Ich bekomme keine Fehlermeldung

Muss ich mir jetzt etwa über java eine passende .bat Datei schreiben und die dann ausführen?
 
entweder

Code:
d:/backup.sql

oder

Code:
d:\\backup.sql

aber nicht

Code:
d:\backup.sql
 
wir nutzen ein java tool das per windows-task jede nacht um 4 die mysql-dir kopiert, packt und per ftp hochschickt. das beste backup nützt nichts wenn die bude samt backup abbrennt 😉
 
es ist mehr für ein backup zum Mitnehmen...

aber egal wie ich es wende oder dreh / ... \\
es funktioniert von hand in der konsole, aber nicht aus meinem programm heraus 🙁
 
was macht denn dieses cmd? diese cmd.exe?
ohne die geht es...
Code:
private void dbdump(){
        try{
        Runtime.getRuntime().exec("D:/XAMPP/mysql/bin/mysqldump.exe -u root DBname > d:/backup.sql");
      
        }catch(Exception e){
            System.out.println("oh je "+ e);
        }
    }

ich dreh durch, gestern lief es, jetzt läuft es nicht mehr egal ob mit cmd oder ohne
 
Die cmd.exe startet die Konsole. Geh mal auf Ausführen und geb da mal cmd ein dann kannst du sehen was passiert :wink:
 
Code:
private void dbdump(){
        try{
        Runtime.getRuntime().exec("cmd /c D:/XAMPP/mysql/bin/mysqldump.exe -u root DBname > d:/backup.sql");
      
        }catch(Exception e){
            System.out.println("oh je "+ e);
        }
    }

Was macht denn dieses "cmd /c" ?
damit läuft es nämlich jetzt endlich
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben