Datenbank kopieren

Guten Tag.
Ich möchte einmal täglich eine Komplette MySQL Datenbank von einem Server (nur Leserechte) zu meinem eigenen Server (Adminrechte) ziehen, um auf meinem Server eine bestimmte Abfrage laufen zulassen, welche sehr viel Zeit und Resourcen benötigt. Gibt es einen MySQL Befehl der einfach eine Datenbank von Server 1 zu Server 2 (zu mir) kopiert? Ich hab da irgendetwas mit „mysqldump“ gehört. Ich brauche auf jeden Fall irgendetwas zur direkten Eingabe als MYSQL Abfrage, da ich es noch in Delphi implementieren muss. (beide Systeme MYSQL Server5)

Mit freundlichen Grüßen
Mike

Ich habe mittlerweile auch schon mit dem Befehl:
„SELECT * FROM tabelle INTO OUTFILE ‚data.txt‘“ experimentiert. Leider funktioniert dass nur mit dieser einen Tabelle. Vielleicht ist dass ja ein Schlagwort für jemanden. Günstig währe die Erzeugung einer „data.sql“ wie es von verschiedenen Admin-tools realisiert wird. Aber halt per Abfrage.

Mit freundlichen Grüßen
Mike

Hallo,

ich denke, dass es einen einfachen MySQL-Befehl für die Erstellung eines Dumps nicht gibt. mysqldump verwendet sicherlich diverse Abfragen, um einen Dump zu erstellen.

Kannst du nicht einfach mysqldump in deinem Programm aufrufen? Das würde dir sicherlich eine Menge Arbeit sparen, da dies schon alles fix und fertig in mysqldump implementiert ist. Falls das keine Option ist, hilft dir vielleicht „show tables;“ und ggf. „show databases;“ weiter, um alle Tabellen zu finden, um deren Daten abzufragen.

Ich habe mittlerweile auch schon mit dem Befehl:
„SELECT * FROM tabelle INTO OUTFILE ‚data.txt‘“
experimentiert. Leider funktioniert dass nur mit dieser einen
Tabelle.

Das heist es geht mit anderen Tabellen nicht ??

wie unten beschrieben, entweder sich mit show tables alle tabellen der datenbank ausgeben lassen um dann jede einzelne Tabelle mit Select habsuholen . etc.

Allerdings finde ich das alles sehr suspect.

  1. Du hast einen eigenen MYSQL server ,den nen ich mal isql
  2. Du hast ein entfernten MYSQL server ,den nen ich mal esql
  3. Du hast Delphi mit MySQL interface … wenn nicht würd ich das mal empfehlen, anstatt comandos abzusetzen.

Wofür also eine Textdatei erzeugen.

Delphi program holt mit
connect esql
show tables from database
dann die tabellen in eine array einlesen

dann

connect isql
und daten mit INSERT … ON DUPLICATE KEY UPDATE …
wieder reinschreiben .

… keine textdatei nötig … wenns sehr grosse datenmengen sind
könnte man auch selbter die entsprechne .sql erzeugen auf dem eigenen rechner , und dann mysql zum einlesen benutzen.

Danke für euern Rat. MySQLdump.exe einbinden war eigentlich gar nicht so schwer. Ich habs nicht direkt angesteuert, sondern mein Zeug in eine Batch Datei geschrieben. Die kann dann einfach gestartet werden.
Mike