backup für eine (mysql-)DB machen

  • ich möchte mit PHP eine Backup-Funktion für eine (mysql-)DB schreiben. Und zwar sollte die Möglichkeit gegeben sein, daß über ein PHP-Skript die Struktur der DB sowie darin vorhandene Daten in eine .sql Datei exportiert werden. So ähnlich wie im PHPMyAdmin (-> Exportieren).

    Hat jemand schon ein ähnlich Skript geschrieben, oder weiß jemand wo man sich sowas Fertiges saugen könnte? Ist es schlauer das mit der system-Anweisung (mysqldump) zu machen, oder doch besser mit PHP selber zusammen zu stückeln?

    Thanx for help.

    *** Make it idiot proof, and someone will build a better idiot. ***

  • Zitat von dose

    Besser mysqldump nehmen oder wenn Du unbedingt willst, die Verzeichnisse aus mysql/var kopieren...aber mit PHP is das irgendwie brrr ;)


    naja ... es über PHP zu machen, ist irgendwie die Vorgabe. Die Datenbank soll sich nämlich in einem regelmäßigen Abstand selbständig (automatisch) backupen. D.h. wenn sich der User einloggt und zur Datenbank connected, soll überprüft werden, ob das letzte Backup nicht zu weit zurück liegt, und wenn das der Fall ist, soll automatisch ein Backup gemacht werden.

    auf mysql/var hab ich (zB auf dem Inode-Server) so viel ich weiß keinen Zugriff. :( Aber PHPMyAdmin schafft das BackUp ziemlich gut, also muß es doch eine existierende, gut funktionierende Möglichkeit geben, wie man das ganze angeht. Bevor ich aber anfang mich durch die ganzen includes vom PHPMyAdmin zu hacken, wollte ich mal die Frage stellen, ob es nicht irgendwo sauber kodiert existiert.

    *** Make it idiot proof, and someone will build a better idiot. ***

  • ich würd mal vorschlagen du guckst dir den quellcode phpmyadmin

    aber ich glaube eher nicht das es ne funktion dafür gibt sondern das phpmyadmin wohl da selbst was zusammengeschraubt hat

  • Im PHP API gibts keine Funktion, was ich gesehen hab, das ganze wird dann wohl eher Richtung SELECT * FROM * laufen ;)
    Wenn Du Zugriff auf den Server hättest, hätt ich Dir für den Task nen simplen Cronjob empfohlen...

    yast, SuSEconfig, apt-get and rpm - the 4 horsemen of the apocalypse

    Platform of insanity :: http://www.dose-xp.org

  • @Tschebel:
    yup. Bei PHPMyAdmin haben sie wie gesagt selber was zusammengebastelt. Nur haben die so viele features, die ich nicht brauche und so so viele includes, daß das alles ziemlich mühsam zum zamstückeln ist.

    dose:
    ich hab's jetzt mit select * from gemacht. Allerdings speichere ich es jetzt nicht in .sql-Format, sondern in php-arrays. Das ist insofern praktisch, als daß ich beim restore der DB das bak-File einfach includen kann und dann ohne weitere Spielereien auf die Daten zugreifen kann.

    Die Struktur der Datenbank wird bei mir sowieso über PHP angelegt, von daher muß ich die Struktur nicht herauslesen.

    *** Make it idiot proof, and someone will build a better idiot. ***

  • Hi...

    eine einfache Lösung kannst du mit mysqldump machen ( sofern du Zugriff auf dieses Tool hast ).. wenn du ein Skript brauchst - schick mir eine PM...

    andersrum könntest du schon eine PHP Lösung machen, nur diese wird sicher kompliziert. du muss die tabellen struktur auslesen, alle daten aus tabellen rauslesen, und einfach den ganzen kram in eine datei speichern. Wenn du die ausgelesenen daten speicherst, musst du sie in invertierter form speichern. dh. in der datei sollten dann CREATES und INSERTS stehen damit der backup wieder in die DB geladen werden kann....

    mfg

    ICE

    Krieg ist eine Art Gottes, den Amerikanern die Geographie beizubringen !!!

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!