Befehl für mysqldump

Status
Nicht offen für weitere Antworten.

Randall

Bekanntes Mitglied
Ich möchte meine Datenbank mit einem mysqldump sichern.

Welcher Befehl ist dazu notwendig. Ich habe folgendes versucht:


Code:
String mysqldump = "mysqldump --opt suke > "+saveFile+".sql;";

wobei "saveFile" ein File ist, das mittels eines FileChoosers ausgewählt wurde.

ausgeführt wird der String mit:

Code:
savestmt.executeUpdate(mysqldump);

Das funktioniert aber nicht:

SQLException: SQLState(42000) vendor code(1064)
java.sql.SQLException: Syntax error or access violation message from server: "You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near
'mysqldump --opt suke > C:\backup4.sql' at line 1"


Habe es auch schon anstelle von executeUpdate mit execute(mysqldump) versucht!

Wie führe ich diesen Befehl zur Sicherung der DB aus?
 

DP

Top Contributor
mysqldump wird auch nicht als statement ausgeführt sondern auf os ebene wie abollm geschrieben hat.

deinen befehl musste in der console eingeben
 

Randall

Bekanntes Mitglied
Sowas hab ich mir schon gedacht.

Ich möchte die Sicherung der DB aus einer Applikation über einen Menüpunk starten. Was gäbe es da für andere Möglichkeiten? Kann dem User nicht zumuten, sowas über die Konsole zu machen
 
G

Guest

Gast
Siehe mysqldump --help

Du musst über den Parameter -r den Namen der Datei angeben,
in die geschrieben werden soll. Pipes sind eine Funktionalität der
Shell, kannst sie nicht so direkt in Java verwenden.
Wenn überhaupt, dann über das Inputstream des Processes.
 

Randall

Bekanntes Mitglied
das mit dem mysql-Verzeichnis kopieren geht zwar im vorliegenden Fall, da diese nur aus der benötigten DB besteht. ABer wenn ich im mysql-Verzeichnis mehrere DB's habe, ist es nicht so gut, das ganze Verzeichnis zu kopieren, vor allem wenn es grosse DB's sind. Und ich möchte die App so bauen, dass sie auch für andere Fälle brauchbar ist.

Werd deinen Link mal studieren.
 

Randall

Bekanntes Mitglied
kann ich aus der App eine Batch-Datei ausführen? Das wäre eine möglichkeit, es für den User einfacher zu machen.
 

DP

Top Contributor
unter windows z.b.:

Code:
String s = "E:\\backup\\mysql_";

File dir = new File(s);
try {
    if (!dir.exists()) {
        dir.mkdir();
    }
    Runtime.getRuntime().exec("cmd /c xcopy d:\\mysql " + s + " /E /V /C /F /H");
}
 

Randall

Bekanntes Mitglied
hm .. wenn ich das so entschlüssle, dann ist das um das gesamte Verzeichnis zu kopieren.

Kannst du mir einen Link geben, um die Bedeutung von /E /V usw. zu bekommen?
 

Bleiglanz

Gesperrter Benutzer
und dann?! da haste ja weder inserts, noch tabellenbeschreibungen...
war ja nur eine Ideee

ausserdem braucht kann man sich die Tabellenbeschreibung leicht beschaffen (SHOW CREATE TABLE <ta>; oder man hat sie sonst noch irgendwo rumliegen!), und zum einlesen gibts LOAD DATA:

The SELECT ... INTO OUTFILE 'file_name' form of SELECT writes the selected rows to a file. The file is created on the server host, so you must have the FILE privilege to use this syntax. The file cannot already exist, which among other things prevents files such as `/etc/passwd' and database tables from being destroyed. The SELECT ... INTO OUTFILE statement is intended primarily to let you very quickly dump a table on the server machine. If you want to create the resulting file on some client host other than the server host, you can't use SELECT ... INTO OUTFILE. In that case, you should instead use some command like mysql -e "SELECT ..." > file_name on the client host to generate the file. SELECT ... INTO OUTFILE is the complement of LOAD DATA INFILE; the syntax for the export_options part of the statement consists of the same FIELDS and LINES clauses that are used with the LOAD DATA INFILE statement. See section 13.1.5 LOAD DATA INFILE Syntax. FIELDS ESCAPED BY controls how to write special characters. If the FIELDS ESCAPED BY character is not empty, it is used to prefix the following characters on output:

muss halt für jede Tabelle einzeln gemacht werden (funzt aber wahrscheinlich nicht so gut für BLOBs)
 

EagleEye

Bekanntes Mitglied
ich hab das bei meinen progs einfach so gemacht das ich alle sachen abfrage und die von hand in ne tabelle eintrage
und die blobs werden jeweils in ne extra datei geschrieben so klappt das bei mir problemlos
 

seekingone

Mitglied
DP hat gesagt.:
unter windows z.b.:

Code:
String s = "E:\\backup\\mysql_";

File dir = new File(s);
try {
    if (!dir.exists()) {
        dir.mkdir();
    }
    Runtime.getRuntime().exec("cmd /c xcopy d:\\mysql " + s + " /E /V /C /F /H");
}

Gibt es mittlerweile evtl. eine Funktion in Java die das evtl graphisch Unterstützt?

Oder bin ich gezwungen mir so eine Art Dateimanager selber zu schreiben, wenn ich den Speicherort vom Benutzer bestimmen lassen möchte? Hat dafür jemand evtl. ein wenig Source auf Lager oder Verweise?
 
T

tuxedo

Gast
Wer seine Backups direkt unter Linux machen will:

Hier ein kleines shell-script was bei mir per cronjob läuft:

Code:
#!/bin/bash
#
# Backup of all Databases in separate sql-files
#

path="/var/lib/mysql/"  # Pfadname in die MYSQL die Datenbanken ablegt, needs tailing '/'
pathlen=${#path};       # Länge der Pfadnamenstrings
targetpath="/opt/sqlbackup/backup"      # Target-directory in which the dumps are saved
rootuser="root"
password="meinrootpasswort"
echo "-------------------------------";
echo "sqlbackup v0.1 - alex0801";
echo "-------------------------------";
echo "";

for i in ls -d $path*/; do
        database=${i:pathlen}   # Den Pfad vom Dateinamen abschneiden
        dblen=${#database}
        if (($dblen >= 3))
        then
                database=${database:0:dblen-1}
                echo "-------------------------------";
                date
                echo "Erstelle Backup der Datenbank '${database}'"
                mysqldump --opt $database -u $rootuser -h localhost --password=$password > $targetpath/$database.sql
        fi
done

Damit wird pro DB eine SQL-File abgelegt ...
Ist zwar quick'n'dirty, funktioniert dafür aber schon seit fast 3 Jahren ohne Probleme.


- Alex
 

seekingone

Mitglied
nochmal eine Frage zum jFileChooser und einer MySQL DatenBank

kann ich den jFileChooser dahingehend modifizieren, dass der Benutzer nur den Speicherort für eine zuvor automatisch erstellte zip-Datei wählen soll.
Ich habe vor das Verzeichnis der entsprechenden DB im MySQL Verzeichnis einfach über java zu zippen und der Benutzer soll dann nur den Speicherort wählen, z.B.: USB-Stick

Ich wüsste sonst nicht wie ich einem Benutzer welcher nicht mit der Verzeichnisstruktur vertraut ist das sichern seiner Datenbank ermöglichen könnte. Die Anwendung läuft auf dem DB-Server oder DB-Server local, wie man es betrachten möche (XAMPP) auf einer WindowsKiste
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
GianaSisters SQL Befehl für allgemeine Datenbankexistenz Datenbankprogrammierung 4
T ResultSet befehl für leere Spalte nicht lesen Datenbankprogrammierung 4
T INSERT-Befehl in Java für Oracle Datenbankprogrammierung 4
B SQLite Befehl bauen? Datenbankprogrammierung 4
F UPDATE - Befehl nur in einer Zeile Datenbankprogrammierung 11
L INSERT INTO Befehl in Java Datenbankprogrammierung 8
M Update Befehl Datenbankprogrammierung 1
M Finde einen eifachen Befehl nicht Datenbankprogrammierung 4
M MySQL Befehl formatieren in MySQL Datenbankprogrammierung 4
E Datentyp enum und tinytext in sql-Befehl Datenbankprogrammierung 5
E falscher Befehl executeQuery() issue data Datenbankprogrammierung 12
S SQL Befehl: "suchwort" egal wo Datenbankprogrammierung 4
A Oracle Unbekannter Fehler bei insert Befehl Datenbankprogrammierung 3
A Oracle Update Befehl in Datenbank anhand einer Schleife Datenbankprogrammierung 8
S Write Befehl Datenbankprogrammierung 10
S Probleme mit INSERT Befehl Datenbankprogrammierung 11
S MySQL sql befehl in java klappt nicht Datenbankprogrammierung 3
J SQL Abfrage: Verschiedene Werte in einer Spalte mit einem Update Befehl? Datenbankprogrammierung 7
S Daten aus jTextfiled in DB schreiben - SQL Befehl Datenbankprogrammierung 2
A Count(*)-Befehl Datenbankprogrammierung 3
G Update-Befehl Fehlerhaft ?? Datenbankprogrammierung 2
G Update Befehl funkt nicht. WARUM? Datenbankprogrammierung 5
I Sql Befehl wird nicht ausgeführt Datenbankprogrammierung 8
A Problem mit einem Select-Befehl Datenbankprogrammierung 5
B [SQL] UPDATE oder REPLACE INTO Befehl Datenbankprogrammierung 10
B fehler bei select befehl Datenbankprogrammierung 5
B MySQL Befehl ausführen Datenbankprogrammierung 3
D Delete Befehl will irgendwie nicht Datenbankprogrammierung 8
M insert befehl funzt nicht!wo ist der fehler? Datenbankprogrammierung 5
G textfeld eingabe nicht in den SQL befehl einbinden Datenbankprogrammierung 14
S Denkfehler bei SQL-Befehl Datenbankprogrammierung 8
E Variablem in insert - Befehl Datenbankprogrammierung 3
J Warten bis SQL befehl ausgeführt wurde! Datenbankprogrammierung 4
S INSERT Befehl mit MySQL? Datenbankprogrammierung 7
C Problem mit Treiber? insert into Befehl geht nicht Datenbankprogrammierung 5
N Insert-Befehl und JTextfield Datenbankprogrammierung 6
F suche MySQl-Befehl um Datensatz an Tabellenende zu schreiben Datenbankprogrammierung 2
D Verknüpfung auflösen für Frontend Datenbankprogrammierung 7
R Beste Lösung für User Erstellung in mongodb Datenbankprogrammierung 1
I SaaS Applikation: pro Kunde eine Datenbank / Schema oder eine DB für alle Kunden? Datenbankprogrammierung 76
O apache derby in eclipse für Datenbanken einbauen Datenbankprogrammierung 3
Zrebna Empfehlung für ein kostenloses DB-Hosting gesucht Datenbankprogrammierung 6
M Lösungsvorschläge für Multi-User Datenbankprogrammierung 1
M Alle Records Felder kriegen für DB Abfrage Datenbankprogrammierung 14
pkm PostgreSQL Kann mit mybatis einen Parameter für eine postgreSQL-Abfrage nicht übergeben. Datenbankprogrammierung 5
Kirby.exe Denkanstoß für Ranking Datenbankprogrammierung 1
L Oracle Repräsentative Namen für die Column Types Datenbankprogrammierung 9
OnDemand Struktur für Parent / Child Produkt Datenbankprogrammierung 5
N ORM für Sqlite Datenbankprogrammierung 4
I Konzept: Klasse / Entity für Einstellung der Software Datenbankprogrammierung 3
H suche eine Login system Bibliothek für Java Datenbankprogrammierung 5
ruutaiokwu MySQL MariaDB-Client-Zertifkate, nur für einen bestimmten User Datenbankprogrammierung 5
B Datenmodell für Regeln + Bedingungen & Referenz auf andere Tabelle Datenbankprogrammierung 12
O Dokumentation für MariaDB 10.3. Datenbankprogrammierung 2
F MariaDatabase Einstellungen für Verbindungen Datenbankprogrammierung 5
Dimax MySQL Trigger für eine Spalte Datenbankprogrammierung 5
Dimax MySQL Maximale Datenlänge für eine Spalte einer Datenbank in java ermitteln Datenbankprogrammierung 15
platofan23 MySQL Java Programm findet Treiber für mySQL auf Debian-Server nicht? Datenbankprogrammierung 11
B Brauche Tipps für Datenbankdesign Datenbankprogrammierung 8
B Tabelle für "wiederkehrende Rechnungen" Datenbankprogrammierung 12
Danloc Informationen für Datenbankverbindung wo/wie speichern? Datenbankprogrammierung 11
J Warum sind Sockets für einen Live-Chat sinnvoll? Datenbankprogrammierung 8
R Java-Befehle/Operatoren für copy&paste Datenbankprogrammierung 2
X PostgreSQL Datenbankdesign für Vokabeltrainer Datenbankprogrammierung 48
@SupressWarnings() HSQLDB Datenbank für mein Dorfbauspiel "Time of Kings" Datenbankprogrammierung 6
M Idee Umsetzung //NFC Eintrittskarten für Geburtstag Datenbankprogrammierung 2
looparda Architektur für JPA Hibernate Umstieg Datenbankprogrammierung 14
P Datanbank für Java-Programmierung Datenbankprogrammierung 10
M Feedback für neues Buch über "Java und Datenbanken" erwünscht Datenbankprogrammierung 8
J SQLite Ich muss für mein Projekt meine Datenbank Kapseln Datenbankprogrammierung 2
J Tipps für ERM Datenbankprogrammierung 4
P Highlevel-Lösung für Speicherung von Baumstruktur mit unbekannter Tiefe Datenbankprogrammierung 1
F welche Datenbank für Messwerte? Datenbankprogrammierung 4
E Warum werden für Datenbanktabellen Schemanamen festgelegt? Datenbankprogrammierung 1
M DB Schema für Vokabeltrainer Datenbankprogrammierung 2
U SQLite Für mich etwa komplexe Abfrage via 2 Tabellen Datenbankprogrammierung 5
E Kann man, wenn man in DB2 Tabellen erstellt hat für dessen auch einen Command-File erstellen? Datenbankprogrammierung 1
T NoSQL Connection für die Thesis [GWT] Datenbankprogrammierung 1
J SQLite Abfrage ausführen stoppt für Zyklus? Wie es zu lösen? Datenbankprogrammierung 3
S HSQLDB Fehlermeldung für den Bildschirm Datenbankprogrammierung 3
L Datenmodell erstellen für eine Nutzertanalyse Datenbankprogrammierung 1
I Query für Geburtstage Datenbankprogrammierung 6
L Zentrale Datenbank im Internet für Spiele Highscores? Datenbankprogrammierung 1
P Derby/JavaDB Csv Datei für dieses Musterprogramm Datenbankprogrammierung 12
ruutaiokwu code-formatter für t-sql... Datenbankprogrammierung 12
J Plug-In-Framework für Hibernate-Klassen Datenbankprogrammierung 0
T Mehrsprachigkeit für Tabellenfelder Datenbankprogrammierung 6
E MySQL Große Datenmengen reibungslos speichern für Gameserver Datenbankprogrammierung 6
F MSSql oder MongoDB für die Speicherung von POI Datenbankprogrammierung 9
G SQLite SQLite Select für View vereinfachen/optimieren Datenbankprogrammierung 4
P MySQL Historie für ein Objekt anlegen Datenbankprogrammierung 5
P MySQL eine richtige Datenbank für einen routenplaner erstellen Datenbankprogrammierung 2
K JDBC- In Java "stored procedure" erstellen für DB2,OracleSql ... Datenbankprogrammierung 3
J Datenbank für Fragen/ Antworten Datenbankprogrammierung 7
O Datenbankschnittstelle für Java Datenbankprogrammierung 8
L Datenbank für kleinere Anwendungen Datenbankprogrammierung 3
N Query für Derby DB mit Enterbrise Bean Datenbankprogrammierung 4
S ich brauche tipps für JDBC Datenbankprogrammierung 4
I Hibernate - Best Practice für Lazy Loading Datenbankprogrammierung 3
R MySQL Voraussetzungen für eine erfolgreiche Datenbankanbindung mittels JDBC Datenbankprogrammierung 2

Ähnliche Java Themen


Oben