# MySql+Java+backup



## Gast2 (31. Jul 2007)

Hallo zusammen,
weiß jemand wie ich von java aus ein backup auf eine mySql datenbank mache??


----------



## P3AC3MAK3R (1. Aug 2007)

Man macht ein Backup *von* einer Datenbank.

Warum willst Du das per Java machen?

Ich würde eher ein Tool wie den MySQLDumper verwenden.


----------



## DP (1. Aug 2007)

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


```
mysqldump.exe myDatenbank > backup.sql
```


----------



## Gast2 (1. Aug 2007)

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.


----------



## Gast2 (2. Aug 2007)

also ich hab das jetzt ausgeführt

```
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 (2. Aug 2007)

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


----------



## Gast2 (2. Aug 2007)

```
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 (2. Aug 2007)

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


----------



## Gast2 (2. Aug 2007)

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>


----------



## DP (2. Aug 2007)

dann mach mal

mysqldump -u username [optional -password]

usw.


----------



## Gast2 (3. Aug 2007)

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 (3. Aug 2007)

```
C:\Programme\MySQL\MySQL Server 6.0\bin>mysqldump.exe -u root -deinPassword studio > backup.sql
```
deinPassword durch dein passwort ersetzen nehme ich an... ;-)


----------



## Gast2 (3. Aug 2007)

hab ich schon versucht mit und ohne das minus 

mit minus kommt

unknown option -6

ohne minus
gleicher fehler wie oben.


----------



## Jonnsn (3. Aug 2007)

hier lautet der entsprechende code 
	
	
	
	





```
--user=root --password=
```
vlt stimmt es so?


----------



## Gast2 (5. Aug 2007)

cool danke so funktioniert es!!!!abe rleider nur aus der dos-konsole raus wenn ich es aus meinem java programm ausführe gehts nimmer 

```
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 (3. Feb 2008)

von java aus habe ich auch probleme 

```
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 (4. Feb 2008)

entweder


```
d:/backup.sql
```

oder


```
d:\\backup.sql
```

aber nicht


```
d:\backup.sql
```


----------



## Gast2 (4. Feb 2008)

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


----------



## DP (4. Feb 2008)

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


----------



## Gast2 (4. Feb 2008)

da geb ich dir recht


----------



## seekingone (4. Feb 2008)

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 (4. Feb 2008)

was macht denn dieses cmd? diese cmd.exe?
ohne die geht es...

```
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 (5. Feb 2008)

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 (5. Feb 2008)

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


----------

