mysqldump funktioniert nicht

X3TitanCore

Bekanntes Mitglied
Hi Leute,

ich bin so langsam am verzweifeln. Ich will über Java ein mysqldump machen, aber die Datei enthält immer nur das hier sonst nix:

SQL:
-- MySQL dump 10.13  Distrib 5.1.41, for debian-linux-gnu (i486)---- Host: localhost    Database: dbname-- -------------------------------------------------------- Server version	5.1.41-3ubuntu12.10/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;/*!40101 SET NAMES utf8 */;/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;/*!40103 SET TIME_ZONE='+00:00' */;/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;

Kann da irgendeiner was mit anfangen. Die DB ist momentan 132 MB gross.

Vor kurzem hat noch alles funktioniert.
Wenn ich den dump über die Konsole mache funktioniert es perfekt.

Gruss
Dirk
 

X3TitanCore

Bekanntes Mitglied
Hier die Code Schnipsel.

Konsole:

SQL:
mysqldump -uusername -p`cat /etc/psa/.psa.shadow` DATENBANKNAME > DATEINAME.sql


Java:

Java:
String[] cmd = {
	     "mysqldump", 
                "-u" + MYSQL_BACKUP_USER, 
                "-p" + MYSQL_BACKUP_PASSWORD,
                "--databases", 
                DB_NAME, 
                backupPath
                };
		
		Runtime shell = Runtime.getRuntime();
		Process process = null;
		Writer fileWriter = null;
		
		try {
			File f = new File(backupPath);
			fileWriter = new FileWriter(f);
			process = shell.exec(cmd);
			process.waitFor();
			
			BufferedReader br = new BufferedReader(new InputStreamReader(process.getInputStream()));
			String line = null;
			
			while ((line = br.readLine()) != null) {
				fileWriter.write(line);
			}
			f.setLastModified(System.currentTimeMillis());
			br.close();
			
		} catch (IOException ex) {
			res = false;
			
			if (fileWriter != null) {
				try {
					fileWriter.close();
					
				} catch ( IOException e ) {
					
				}
			}
			new File(backupPath).delete();
			
		} catch (InterruptedException ie) {
			
		} finally {
			if (fileWriter != null) {
				try {
					fileWriter.close();
					
				} catch (IOException ex) {
					
				}
			}
		}

Gruss
Dirk
 
N

nillehammer

Gast
Ich weiß jetzt nicht, ob das direkt falsch ist, aber das Kommando, dass Du direkt über die Konsole eingibst:
Code:
mysqldump -uusername -p`cat /etc/psa/.psa.shadow` DATENBANKNAME > DATEINAME.sql
unterscheidet sich, von dem, dass Dein Javaprogramm aufruft:
Code:
mysqldump -uMYSQL_BACKUP_USER -pMYSQL_BACKUP_PASSWORD --databases DB_NAME backupPath
Der Parameter --databases ist anders und backupPath muss doch auch nicht ein, oder?
Eine weitere Fehlerquelle kann der PATH sein. Wenn du Dich mit einem User auf Konsole einloggst, ist das MySql-Bin vielleicht im Pfad und man direkt mysqldump aufrufen. Im Java-Programm vielleicht nicht. Hier kann es helfen, den vollen Pfad zum Kommando einzugeben.
 

X3TitanCore

Bekanntes Mitglied
Hi!

Also ich habe es auch schon ohne --databases probiert, gleiches Ergebnis.

backupPath ist der Pfad wo das Backup gespeichert werden soll, während ich mit der Konsole schon im Verzeichnis war. Die Datei wird auch an der richtigen Stelle erzeugt mit dem Inhalt aus dem ersten Post.

Was mich wundert ist, dass in der Backupdatei was drin steht, aber nicht die kompletten Backupdaten. Von daher sollte der Pfad zu mysqldump passen. Es hatte ja auch schon mal funktioniert, nur jetzt nicht mehr.

Wenn ich raten müsste, würde ich auf die Größe der DB tippen. Weiss nur nicht wovon das abhängt.

MYSQL_BACKUP_PASSWORD ist gleich dem was bei cat /etc/psa/.psa.shadow` ausgegeben wird.

Gruß
Dirk
 
N

nillehammer

Gast
X3TitanCore hat gesagt.:
backupPath ist der Pfad wo das Backup gespeichert werden soll, während ich mit der Konsole schon im Verzeichnis war. Die Datei wird auch an der richtigen Stelle erzeugt mit dem Inhalt aus dem ersten Post.
Das ist schon klar, aber in diesem Fall willst Du ja nicht, dass mysqldump die Datei erzeugt. Wenn ich Deinen Quellcode richtig interpretiere, willst Du mysqldump's Ausgaben in Deinem Java-Programm einlesen und von dort in eine Datei schreiben. Wozu übergibst Du den Pfad also an mysqldump?

X3TitanCore hat gesagt.:
Was mich wundert ist, dass in der Backupdatei was drin steht, aber nicht die kompletten Backupdaten. Von daher sollte der Pfad zu mysqldump passen. Es hatte ja auch schon mal funktioniert, nur jetzt nicht mehr.

Wenn ich raten müsste, würde ich auf die Größe der DB tippen. Weiss nur nicht wovon das abhängt.
Das stimmt natürlich. Habe jetzt nochmal über Deinen Code geschaut. Ich glaube, das
Java:
process.waitFor();
könnte eine Ursache sein. Du willst ja die Ausgabe von mysqldump direkt in Deinem Java-Programm weiterverarbeiten und nicht erst, wenn mysqldump fertig ist.

[EDIT]
Wenn ich das jetzt alles zusammen nehme, ergibt sich für mich folgendes Mögliches Verhalten Deines Anwendungskonstruktes:
- Du rufst mysqldump auf. Es funktioniert auch und schreibt den Dump in die Datei backupPath
- Du wartest in Deinem Java-Programm brav, bis es fertig ist.
- Du liest in Deinem Java-Programm danach die Ausgabe von mysqldumd ein. Diese beinhaltet aber nur eine Zusammenfassung des ausgeführten Kommandos.
- Diese Zusammenfassung schreibst Du dann in backupPath und überschreibst damit alles, was mysqldump da vorher reingeschrieben hat.
[/EDIT]
 
Zuletzt bearbeitet von einem Moderator:

irgendjemand

Top Contributor
das Process.waitFor() muss raus ... ansonsten hast du einen deadlock ... da du auf das ende von mysqldump wartest ... und dann erst die daten lesen willst ... dieses aber wiederum auf das lesen der daten wartet bevor es sich beendet ...
 

X3TitanCore

Bekanntes Mitglied
Hi!

Hat leider auch nichts genutzt.
Hab auch vor den
Java:
br.close()
noch ein flush gesetzt.
Gleiches Ergebnis.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
M mysqldump Datenbankprogrammierung 9
P MySQLDump Datenbankprogrammierung 4
D MySQLDump an E-Mail senden Datenbankprogrammierung 5
H mysqldump mit Runtime.getRuntime().exec() Datenbankprogrammierung 4
R Befehl für mysqldump Datenbankprogrammierung 18
W MySQL-Connector funktioniert nicht über WLAN -> MacOS Datenbankprogrammierung 10
Auf MySql Datenbank zugreifen funktioniert nicht Datenbankprogrammierung 8
Warum funktioniert MySQL nicht Datenbankprogrammierung 8
S Das printen der Ausgabe des Oracle-SQL-Statements in der Java-Eclipse-Konsole funktioniert nicht Datenbankprogrammierung 6
S Datenbankprogrammierung in Java unter NetBeans 12 funktioniert nicht! Datenbankprogrammierung 1
D JPA gleiche methode funktioniert an einer Stelle, an der anderen nicht Datenbankprogrammierung 3
J Firebase KeepSynced funktioniert nicht Datenbankprogrammierung 0
L SQL-Statement INSERT INTO ON DUPLICATE KEY UPDATE funktioniert nicht Datenbankprogrammierung 5
H Derby/JavaDB Beispiel funktioniert nur einmal Datenbankprogrammierung 7
P LDAP: Daten eintragen funktioniert nicht Datenbankprogrammierung 7
M Java Datenbankanbindung funktioniert nicht Datenbankprogrammierung 4
J Verbindung zu Derby Datenbank funktioniert nicht Datenbankprogrammierung 14
E Warum funktioniert das Erzeugen einer View nicht? Datenbankprogrammierung 1
M DB-Zugriff funktioniert nach JAR-Erstellung nicht mehr Datenbankprogrammierung 3
L SQL Statement mit Switch-Case funktioniert nicht Datenbankprogrammierung 6
L MySQL App/Java Zugriff auf Mysql-DB funktioniert nicht Datenbankprogrammierung 1
1 MySQL Verbindung mit localhost als IP funktioniert, aber mit normaler IP nicht Datenbankprogrammierung 2
J Datenbankeintag eines Warenkorbes funktioniert nicht Datenbankprogrammierung 4
P SQL-Statement "Top 1" oder "limit" funktioniert nicht Datenbankprogrammierung 12
crashfinger jdbc-connection mit jre7 funktioniert nicht Datenbankprogrammierung 5
W No data found: SQL-Abfrage funktioniert nur beim Debuggen Datenbankprogrammierung 3
C JDBC Datenbank funktioniert nicht Datenbankprogrammierung 7
T HQL Query funktioniert nicht? Datenbankprogrammierung 8
X Rollback mit Savepoint funktioniert auf Oracle nicht (ORA-01086) Datenbankprogrammierung 4
F wie funktioniert if Statement in SELECT? Datenbankprogrammierung 2
W HSQLDB executeUpdate funktioniert nicht Datenbankprogrammierung 20
S HSQLDB DELETE-Statement funktioniert nicht Datenbankprogrammierung 4
K MySQL Verbindung funktioniert in Netbeans aber .jar funktioniert nicht Datenbankprogrammierung 5
A Rollback funktioniert nicht Datenbankprogrammierung 10
C MySQL Update funktioniert nicht Datenbankprogrammierung 11
W jpmdbc Problem -Beispiel funktioniert nicht Datenbankprogrammierung 9
H SQL Abfrage funktioniert nicht. Datenbankprogrammierung 10
D Problem: Prepared Statement (Insert) funktioniert nicht. Datenbankprogrammierung 3
E Einfache Abfrage funktioniert nicht Datenbankprogrammierung 3
G MSSQL Server SELECT Abfrage funktioniert nicht Datenbankprogrammierung 4
J Insert auf Access DB funktioniert nicht Datenbankprogrammierung 5
V commit funktioniert nicht Datenbankprogrammierung 2
A Like-Anweisung funktioniert nicht korrekt Datenbankprogrammierung 2
Y ORACLE - Autoincrement funktioniert nicht Datenbankprogrammierung 2
K Zugriff mittels JDBC funktioniert nur lokal Datenbankprogrammierung 5
V MySql abfrage funktioniert auf einmal nicht mehr Datenbankprogrammierung 2
S Gleiche Verbindung funktioniert einmal und einmal nicht Datenbankprogrammierung 4
E executeUpdate() funktioniert auf einmal nicht Datenbankprogrammierung 2
B MySQL Stored Procedure Aufruf funktioniert nicht Datenbankprogrammierung 4
B Update funktioniert nicht Datenbankprogrammierung 8
A INSERT funktioniert nur im Debug-Modus Datenbankprogrammierung 19
G Insert in MS SQL Server Db funktioniert nicht richtig Datenbankprogrammierung 16
W RsultSet auf null abfragen funktioniert nicht Datenbankprogrammierung 4
D Datenbankzugriff auf MS SQL Server 2000 funktioniert nicht Datenbankprogrammierung 3
F Insert Funktioniert nicht Datenbankprogrammierung 6
S MySQL-Abfrage unter java funktioniert nicht! Datenbankprogrammierung 4
P Insert Into mit Acces und Autowert funktioniert nicht Datenbankprogrammierung 2
J DB Verbindung im IDE funktioniert, als jar nicht Datenbankprogrammierung 5
A delete aus datenbank, funktioniert nicht so richtig Datenbankprogrammierung 10
L DB-Verbindung (Oracle) funktioniert nicht Datenbankprogrammierung 35
S Statement.getGeneratedKeys() funktioniert nicht Datenbankprogrammierung 4
R Datenbank zugriff funktioniert nur offline Datenbankprogrammierung 2
M Meine Datenbank lässt sich mit meiner Methode nicht ändern Datenbankprogrammierung 1
P Reicht finally nicht um DB connections zu schließen in (altem) Java? Datenbankprogrammierung 4
D JOIN COLUMN wird nicht genommen Datenbankprogrammierung 2
Maxim6394 JPA / EclipseLink - n:m Beziehung wird nicht aktualisiert Datenbankprogrammierung 0
J SQLite Abfrage fehlerhaft - komme nicht weiter - please help. Datenbankprogrammierung 3
D Ich möchte dass ich nachdem man den Kommentar geschrieben hat den Kommentar in den Tabelle Bestellübersicht geschbeichert wird klappt nicht bei mir Datenbankprogrammierung 2
M Datenbank Zugraff nach Umwandlung in .jar-Datei nicht mehr möglich Datenbankprogrammierung 4
A Java DB Server lässt sich nicht starten Datenbankprogrammierung 3
B SQlite Datenbank, trotz Statements wurden nicht alle Zeilen erzeugt? Datenbankprogrammierung 35
T Datenzeilen werden nicht gelöscht Datenbankprogrammierung 6
pkm PostgreSQL Kann mit mybatis einen Parameter für eine postgreSQL-Abfrage nicht übergeben. Datenbankprogrammierung 5
Davee SQLite SQLite Datenbank lässt sich nicht auf anderen PCs öffnen Datenbankprogrammierung 8
Watsoon Treiber wird in Intellij nicht geladen Datenbankprogrammierung 2
Kirby.exe PreparedStatement wird nicht ausgeführt Datenbankprogrammierung 5
rafi072001 MicroServices EurekaClient findet anderern EurekaClient nicht Datenbankprogrammierung 1
Z Datenbank Choicebox wird nicht befüllt Datenbankprogrammierung 15
pkm PostgreSQL Auf eine Spalte kann aus einem Teil der SQL-Aussage nicht zugegriffen werden Datenbankprogrammierung 3
G MySQL JDBC Metadaten auslesen aus .accdb -> Primärschlüssel manchmal erkannt manchmal nicht Datenbankprogrammierung 3
C MySQL SQL Statement wir nicht ausgeführt Datenbankprogrammierung 11
N Sqlite DB mit Java wird auf Linuxsystem nicht gefunden Datenbankprogrammierung 9
pkm Tomcat Classloader findet bei JPA-Persistierung die Persistence Unit nicht. Datenbankprogrammierung 11
F Tabellen automatisch erstellen wenn sie nicht existieren Datenbankprogrammierung 6
J Netbeans 11 und Eclipse JPA 2.5 Entity wird nicht gefunden Datenbankprogrammierung 4
J Java fügt Datensätze ein aber diese werden nicht richtig abgefragt Datenbankprogrammierung 3
OnDemand MySQL Trigger löst nicht aus bei Hibernate Update Datenbankprogrammierung 12
R HSQLDB ResultSet update aktualisiert DB, aber nicht das ResultSet Datenbankprogrammierung 2
platofan23 MySQL Java Programm findet Treiber für mySQL auf Debian-Server nicht? Datenbankprogrammierung 11
B MySQL Data Tools Plattform - "Database Connections" findet den Treiber nicht Datenbankprogrammierung 1
OnDemand One to Many bekomm es nicht hin Datenbankprogrammierung 7
OnDemand Update auf Mysql läuft nicht durch Datenbankprogrammierung 30
R jdbc-Zugriff Nicht erlaubt ? Datenbankprogrammierung 16
F H2 ObjectOptimisticLockingFailureException wird nicht geworfen Datenbankprogrammierung 0
R findet Derby.DB nicht !? Datenbankprogrammierung 5
I Datenbankverbindung Oracle DB klappt nicht - getConnection returned null Datenbankprogrammierung 8
X SQLite SQLite Programm beendet/führt nicht weiter aus Datenbankprogrammierung 12
Ananaskirsche Datenbanktreiber kann nicht geladen werden Datenbankprogrammierung 2
S sun.jdbc.odbc.JdbcOdbcDriver wird nicht gefunden Datenbankprogrammierung 2
U Kann die Tabellen nicht finden Datenbankprogrammierung 0

Ähnliche Java Themen

Neue Themen


Oben