MySQL Datenbank kopieren

Seite 1 von 1 - Forum: Coding Stuff auf overclockers.at

URL: https://www.overclockers.at/coding-stuff/mysql_datenbank_kopieren_152884/page_1 - zur Vollversion wechseln!


jb schrieb am 17.11.2005 um 07:29

Der Inhalt einer MySQL Tabelle soll regelmäßig von einem Rechner auf einen anderen kopiert werden, leider ist der Quellrechner durch eine Firewall so abgeschirmt, sodaß ich nur per HTML (phpmyadmin) die Daten rausholen kann. Ein manueller Export per Hand und anschließender Import per Hand ist mir aber zu umständlich, das soll automatisch laufen.

Auf dem Zielrechner habe ich SSH Zugriff und könnte auch einen Cron-Job einrichten (lassen), der mir ein Script automatisch ausführt. Zugriff auf die dortige Datenbank habe ich auch. Ein Script, daß die Daten am Zielrechner in die Datenbank schickt läuft auch schon.
Ich habe zwar am Quellrechner auch SSH Zugriff, das bringt aber nix, weil ja nur Port 80 offen ist und ich deshalb die Daten nicht zum anderen Rechner rüberbringe.

Es geht also nur darum, die Daten vom Quellrechner automatisiert irgendwie rüberzubekommen. Meine Idee wäre gewesen, daß das Script Phpmyadmin beim Quellrechner aufmacht (ist natürlich per htaccess geschützt), die Tabelle rauszieht und in eine Datei auf den Zielrechner schreibt.

Falls einer Bedenken hat, das Ganze ist 100% legal, ich habe Accounts auf Quell und Zielrechner vom jeweiligen Admin bekommen und auch die Erlaubnis, die Daten rauszuspielen, nur dürfen wir keine Ports auf der Firewall aufmachen.
Wer hat eine Idee, wie das Ganze möglichst einfach realisiert werden kann?


that schrieb am 17.11.2005 um 09:03

Ich würde auf dem Quellrechner ein PHP oder CGI-Script schreiben, das die Tabelle in ein File schmiert und dieses dann per HTTP zurückliefert. Das würde ich dann vom Zielrechner aus aufrufen.


jb schrieb am 17.11.2005 um 13:24

Hehe, ich hab scheinbar mal wieder zu kompliziert gedacht...

Das SQL File hab ich jetzt schon mal so hingebogen, daß es im Browser angezeigt wird (einfach ins Verzeichnis kopiert wo die html und php Dateien liegen).
Gibts einen PHP Befehl, der Daten von einer URL auslesen und in ein File oder in eine Variable schreiben kann?

Das SQL File hat ca. 900kByte und ca. 15000 Datensätze, die Datensätze schauen schon so aus:

Zitat
INSERT INTO tabellenname VALUES (3, 4, '01.06.2002', 0);


watchout schrieb am 17.11.2005 um 14:19

Zitat von jb
Gibts einen PHP Befehl, der Daten von einer URL auslesen und in ein File oder in eine Variable schreiben kann?
file_put_contents (..., $_GET[...])


jb schrieb am 17.11.2005 um 23:38

Zitat von watchout
file_put_contents (..., $_GET[...])

Also das ist es nicht, aber "file_get_contents" scheint das zu sein, was ich brauche. Er macht aber leider bei ca. 350kByte Schluß, muß also das ursprüngliche SQL File auf 3 oder 4 Teile aufsplitten, alternativ könnte ich auch schaun, daß nur die wirklich geänderten Datensätze übernommen werden. Aber das wird schon was.

Meine Idee wäre, Username und Paßwort per Variable zu übergeben, also die Url z.b. mit http://www.xyz.de/index.php?user=abc&pw=1234 aufrufen, oder ist das als komplett unsicher und darum unbrauchbar?


Oder ich "file_get_contents" irgendwie Username und Paßwort mitgeben?


Crash Override schrieb am 18.11.2005 um 10:05

Wieso PHP? müsste der entfernte Rechner nicht mit wget rankommen wenn die Datei im geschützten Verzeichnis liegt?

probiere mal: man wget


watchout schrieb am 18.11.2005 um 10:18

Zitat von jb
Also das ist es nicht, aber "file_get_contents" scheint das zu sein, was ich brauche. Er macht aber leider bei ca. 350kByte Schluß, muß also das ursprüngliche SQL File auf 3 oder 4 Teile aufsplitten, alternativ könnte ich auch schaun, daß nur die wirklich geänderten Datensätze übernommen werden. Aber das wird schon was.

Meine Idee wäre, Username und Paßwort per Variable zu übergeben, also die Url z.b. mit http://www.xyz.de/index.php?user=abc&pw=1234 aufrufen, oder ist das als komplett unsicher und darum unbrauchbar?


Oder ich "file_get_contents" irgendwie Username und Paßwort mitgeben?
mir is nicht ganz klar was du wirklich machen willst - aber mit file_get_contents kannst du definitiv kein file schreiben.
UN/PW kann man in http://einer URL üblicherweise per prot://UN:PW@serverpath übergeben.


jb schrieb am 19.11.2005 um 00:00

Ich glaub mit WGET komme ich am weitesten, hab das mal getestet und es schaut recht gut aus, danke mal für eure Bemühungen!

Die Lösung wird jetzt so aussehen:
Das SQL File auf dem Quellrechner wird in ein bestimmtes Verzeichnis kopiert von wo aus ich per Web Zugang habe (über Htaccess geschützt).
Auf dem Zielrechner rennt ein Cronjob, der per Wget das File vom Quellrechner abholt und anschließend gleich in die Datenbank schreibt.
Daraus erstellt dann das Script die Webseite auf dem Zielrechner.




overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2026