Datenbank synchron halten

budking

Mitglied
Hallo

ich würde gerne zwei mysql datenbanken synchron halten. Eine Datenbank liegt auf meinem Rechner zuhause, die die 2. bei 1und1. Ich habe anscheinend keine Möglichkeit von ausen auf die 1und1 Datenbank zuzugreifen, sprich ich muss auf meinem Webspace ein php script aufrufen um Daten zu verändern, oderich benutze halt phpMyAdmin, was ja aber nichts anderes ist.

Jetzt frag ich mich wie ich das mit der Synchronisation am dümmsten hinbekomme. Verändert werden nur die Daten in der lokalen Datenbank.

Gibt es die Möglichkeit sich eine kommplette Datenbank, oder zumindest eine komplette Tabelle als sql drop ausgeben zu lassen - diesen dann in einer Variablen speichern - an eine skript welches aufdem 1und1 webspace liegt zu versenden und dort dann wieder auszuführen.

Ich weis das hört sich alles umständlich an, mein Hauptproblem liegt momentan halt bei der Erzeugung des sql-drops. Könnte mir da vielleichtmal jemand die Richtung weisen.

Oder muss ich doch jede Tabelle einzeln auslesen, die Daten in Variablen abspeichern, diese dann übergeben und wieder erneut einlesen. So mache ich es zur Zeit mit einer Tabelle. Finde es allerdings recht umständlich und würde es gerne umgehen das ganze für die restlichen Tabellen auch anwenden zu müssen.

Vielen Herzlichen Dank für eure Vor- und Ratschläge.

Markus
 
Hi!

1.) Verwende phpMyAdmin.
2.) Erstelle von deiner lokalen DB einen MySQL-Dump.
3.) Spiele diesen Dump auf deinem Webspace per phpMyAdmin ein. Das sollte gehen, wenn der Dump kleiner als die max. Upload-Dateigröße ist.
4.) Du kannst das Dump-System natürlich auch nachstricken, das habe ich z. B. mal für nen Backup-System (mit Komprimierung) gemacht.

Mamphil
 
Ok, das war jetzt die manuelle Methode. Ich gehe davon aus, dass du das Ganze mit so wenig manuellem Aufwand wie möglich realisieren möchtest.

Das Schema einer solchen Synchronisation sollte meiner Meinung nach folgendermaßen aussehen:
- Mittels SHOW CREATE TABLE tabelle erzeugst du lokal ein Query zum Anlegen der Tabelle auf dem Zielrechner
- Die Daten musst du wohl wirklich anhand einiger Queries und / oder PHP-Funktionen in eine korrekte INSERT-Anweisung bringen
- Die Daten befinden sich nun in einem Array o.Ä.
- Jetzt werden diese Daten dem Zielscript im Internet übergeben
- Das Zielscript führt dann zunächst ein DROP TABLE tabelle aus und erzeugt anschließend mit dem zuvor lokal erstellten Query wieder die (aktualisierte) Tabelle.
- Anschließend wird das Array der Daten durchlaufen und diese in die Tabelle eingefügt

Das könnte also ein Lösungsweg sein.
 
Das habe ich schon befürchtet. Ist halt recht viel aufwand. So in etwa mache ich das schon mit einer Tabelle und ich habe noch 14 weitere, die zu synchronisieren sind.
Trotzdem danke. Falls noch einer ein paar Vorschläge hat, oder auch den Ultimativen Lösungsansatz als her damit. Danke.
 
Bei 1&1 kannst du generell nicht von außen auf den MySQL-Server zugreifen. Es geht also nur über die Variante mit PHP. Ich selbst kann bei HostEurope einstellen ob die Datenbank auch von woanders aus zugreifbar ist. Was zwar sicherlich nicht so die beste und sicherste Methode ist, wäre, dass du die Funktionen von phpMyAdmin direkt aufrufst oder du schreibst die Routinen selbst, was sicherlich aber auch mit etwas Aufwand verbunden ist.
 
Zurück