MySql+Java+backup

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??
 

DP

Top Contributor
z.B. unter windows in der dosbox unter mysql\bin:

Code:
mysqldump.exe myDatenbank > backup.sql
 
G

Gast2

Gast
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.
 
G

Gast2

Gast
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
 

DP

Top Contributor
vor dem backup.sql fehlt das > zeichen, dass alles in die backup.sql reingeschrieben werden soll
 
G

Gast2

Gast
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
 

DP

Top Contributor
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...
 
G

Gast2

Gast
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>
 
G

Gast2

Gast
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
 

Jonnsn

Bekanntes Mitglied
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... ;-)
 
G

Gast2

Gast
hab ich schon versucht mit und ohne das minus

mit minus kommt

unknown option -6

ohne minus
gleicher fehler wie oben.
 

Jonnsn

Bekanntes Mitglied
hier lautet der entsprechende code
Code:
--user=root --password=
vlt stimmt es so?
 
G

Gast2

Gast
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
 

seekingone

Mitglied
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?
 

DP

Top Contributor
entweder

Code:
d:/backup.sql

oder

Code:
d:\\backup.sql

aber nicht

Code:
d:\backup.sql
 
G

Gast2

Gast
also ich hab mir einfach ein eigenes backup file geschrieben...
 

DP

Top Contributor
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 ;)
 

seekingone

Mitglied
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 :(
 

seekingone

Mitglied
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
 

HeRaider

Aktives Mitglied
Die cmd.exe startet die Konsole. Geh mal auf Ausführen und geb da mal cmd ein dann kannst du sehen was passiert :wink:
 

seekingone

Mitglied
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.

Oben