Hallo!
Irgendwie überrascht mich, dass ich als geübter Suchmaschinenbenutzer nach einem ganzen Tag Recherche noch keine Lösung gefunden habe. Ich habe in Java mit Swing eine Client-Server-Anwendung entwickelt. Der Server ist ein entfernter MySQL-Server. Dass der Server nicht lokal auf demselben Rechner liegt, scheint beim Einlesen einer Dumpdatei scheinbar eine wichtige Rolle zu spielen.
Das Einlesen der Dumpdatei soll nicht über den Umweg einer Batch- (Windows) oder Shelldatei (Linux) erfolgen. Es muss doch auch direkt aus Java möglich sein.
Wichtiger Hinweis noch einmal: Der MySQL-Server, der die Daten aus der Dumpdatei bekommen soll, liegt woanders. Lösungen für lokale Server habe ich gefunden. Dabei wurde das Tool mysql mit den Parametern "-e" und "source" gerufen.
Das Schreiben einer Dumpdatei verwirkliche ich wie folgt und es funzt:
Nun muss es umgekehrt doch auch möglich sein, die erstellte Dumpdatei wieder auf einem ähnlichen Wege einzulesen!? Ich wäre echt dankbar, wenn jemand einen weiterbringenden Hinweis nennen kann.
Viele Grüße
JAR
Irgendwie überrascht mich, dass ich als geübter Suchmaschinenbenutzer nach einem ganzen Tag Recherche noch keine Lösung gefunden habe. Ich habe in Java mit Swing eine Client-Server-Anwendung entwickelt. Der Server ist ein entfernter MySQL-Server. Dass der Server nicht lokal auf demselben Rechner liegt, scheint beim Einlesen einer Dumpdatei scheinbar eine wichtige Rolle zu spielen.
Das Einlesen der Dumpdatei soll nicht über den Umweg einer Batch- (Windows) oder Shelldatei (Linux) erfolgen. Es muss doch auch direkt aus Java möglich sein.
Wichtiger Hinweis noch einmal: Der MySQL-Server, der die Daten aus der Dumpdatei bekommen soll, liegt woanders. Lösungen für lokale Server habe ich gefunden. Dabei wurde das Tool mysql mit den Parametern "-e" und "source" gerufen.
Das Schreiben einer Dumpdatei verwirkliche ich wie folgt und es funzt:
Code:
String[] cmd = { "mysqldump", "--default-character-set=utf8",
"--host=" + "<hostname>", "--port=" + "<portnummer>",
"--user=" + "<username>", "--password=" + "<password>",
"--database", "<database>" };
Runtime shell = Runtime.getRuntime();
Process process;
Writer fileWriter = null;
try {
fileWriter = new FileWriter( "<path_of_dumpfile>" );
process = shell.exec( cmd );
BufferedReader br = new BufferedReader( new InputStreamReader( process.getInputStream() ) );
String line = "";
while ( ( line = br.readLine() ) != null ) {
fileWriter.write( line );
}
br.close();
}
catch ( IOException ex ) {
new File( "<path_of_dumpfile>" ).delete();
}
finally {
if ( fileWriter != null ) {
try {
fileWriter.close();
}
catch ( IOException ex ) {
Exceptions.printStackTrace( ex );
}
}
}
Nun muss es umgekehrt doch auch möglich sein, die erstellte Dumpdatei wieder auf einem ähnlichen Wege einzulesen!? Ich wäre echt dankbar, wenn jemand einen weiterbringenden Hinweis nennen kann.
Viele Grüße
JAR