Julian von Mendel: (MySQL) Datenbankbackups komfortabel speichern und einspielen

Hallo,

ich muss aus einer PHP-Webanwendung heraus, die unter Windows, Linux und MacOS X laufen soll, eine Datenbank mit ca. 2000 Zeilen und 60 Spalten komplett in möglichst hoher Geschwindigkeit backupen können (soll bei jedem Login einmal passieren), und, auf User-Wunsch, ein gespeichertes Backup wieder einspielen. Ich stelle mir das so vor, dass die Datenbank in eine Datei gebackupt wird, die Backups aufgelistet, und bei Klick zurück geladen werden. Jetzt stellt sich die Frage, wie man die Datenbank am Klügsten ohne User-Interaktion in eine Datei backupt...
Ich habe dazu die Tools mysqldump und mysqlimport gefunden. Ich habe mit denen keine Probleme, über die Konsole. Der Pfad zu den Tools ist aber bei den verschiedenen Systemen unterschiedlich. Unter Windows mit XAMPP z. B. liegen sie standardmäßig in C:/xampp/mysql/ - unter Linux sind sie meistens in $PATH mit drin (sowas gibts aber mit DOS glaube ich nicht?). Wie es mit MacOS aussieht, weiß ich nicht, aber ich schätze, dass es da seit OS X ähnlich wie unter Linux aussieht. Wie rufe ich die Programme jetzt am sinnvollsten auf, ohne für jedes System den Pfad abfragen zu müssen? Oder gibt es klügere Alternativen? (Ich habe gesehen, dass man theoretisch auch einfach das Datenbank-Verzeichnis kopieren kann, aber dann muss ich das erst mit zip/tar/etc. bearbeiten und habe das gleiche Problem wie bei der anderen Methode. phpBB und phpMyAdmin haben eine Funktion zum Im- und Export selbst implementiert, denen ihr Code ist mir aber zu unübersichtlich, d. h. das Nachbauen wäre sehr aufwendig.)

Schöne Grüße
Julian

--
"Real programmers can write assembly code in any language." - Larry Wall
  1. echo $begrueszung;

    Wie rufe ich die Programme jetzt am sinnvollsten auf, ohne für jedes System den Pfad abfragen zu müssen?

    Lass es von dem jenigen, der das System aufsetzt in einer von dir benannten Konfigurationsdatei einstellen. Die kann beispielsweise im ini-Format sein und kann mit parse_ini_file oder das PEAR Package Config gelesen werden.

    echo "$verabschiedung $name";

    1. Hallo,

      Wie rufe ich die Programme jetzt am sinnvollsten auf, ohne für jedes System den Pfad abfragen zu müssen?

      Lass es von dem jenigen, der das System aufsetzt in einer von dir benannten Konfigurationsdatei einstellen.

      naja, das kann ich schon. Ich hab mit "abfragen" auch nicht gemeint, dass ich es jedesmal jemanden in ein Textfeld tippen lasse *g*. Nur unpraktisch ist es irgendwie, weil ich das Programm dann nicht einfach hin- und herkopieren kann, sondern die Konfigurationsdatei anpassen muss.

      Schöne Grüße
      Julian

      --
      "Real programmers can write assembly code in any language." - Larry Wall