MySql-Backup restore funktioniert nicht

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • MySql-Backup restore funktioniert nicht

    Hallo Leute,

    ich stehe mal wieder vor einem Problem! Ich mache mit folgendem php schript ein Backup:

    Quellcode

    1. // Backup erstellen
    2. $datei = date(Y."-".m."-".d."_".H."-".i."-".s).".sql.gz"; // Dateiname aus Datum und Uhrzeit bilden;
    3. system("/usr/bin/mysqldump -u".$user." -p".$pass." -h ".$host." ".$database." | gzip > ".dirname(__FILE__)."/".$path.$datei, $fp);
    4. if ($fp==0) { $meldung = "Backup wurde erfolgreich erstellt!"; }
    5. else { $meldung = "Fehler: Das Backup konnte nicht erstellt werden!"; }

    funktioniert auch wunderbar.
    Nun möchte ich es mit folgendem Code wieder einspilen

    Quellcode

    1. system("/usr/bin/gunzip < ".dirname(__FILE__)."/".$path.$restore_file." | /usr/bin/mysql -u".$user." -p".$pass." -h ".$host." ".$database, $fp);
    2. if ($fp==0) { $meldung = "Backup wurde erfolgreich erstellt!"; }
    3. else { $meldung = "Fehler: Das Backup konnte nicht wieder hergestellt werden!"; }

    bekomme aber immer nur die "else"-Ausgabe: Fehler: Das Backup konnte nicht wieder hergestellt werden.
    Was mache ich falsch?

    Grüße KMD
  • Waldi, locar, KMD... die ganzen alten Hasen sind heute mal wieder da ;)

    Hi!

    mach mal ein echo $fp.
    Hast du Shell Zugang? Ansonsten führs mal in der Shell aus.

    Wenn beides nicht hilft, muss ich mal in meinen Vorlesungen suchen. Man kann auch die stderr in stdout pipen, so dass du auch die fehlerausgabe in $fp bekommst, aber weo´t grad nicht auswendig wie.
  • Hi dOnut,

    >> Waldi, locar, KMD... die ganzen alten Hasen sind heute mal wieder da
    Klar! ist doch das beste Forum! :thumbsup:

    $fp gibt eine 1 aus!

    ich habe es auch schon mit einer unkomprimierten Version versucht => leider das selbe Ergebnis

    Nein der Kunde hat leider keinen Shell-Zugang

    >> Wenn beides nicht hilft, muss ich mal in meinen Vorlesungen suchen. Man kann auch die stderr in stdout pipen, so dass du auch die fehlerausgabe in $fp bekommst
    Das wäre super! :thumbup:

    Grüße
    KMD
  • Das wichtige ist die Pipe

    Quellcode

    1. /usr/bin/gunzip < ".dirname(__FILE__)."/backup/backupxxx.sql.gz | /usr/bin/mysql -uUSER -pPASS -hHOST DATENBANK 2>&1


    Wenn das nicht klappt, zerleg alles mal

    Quellcode

    1. /usr/bin/gunzip --version

    Quellcode

    1. cat ".dirname(__FILE__)."/backup/backupxxx.sql.gz

    Quellcode

    1. /usr/bin/gunzip < ".dirname(__FILE__)."/backup/backupxxx.sql.gz

    Quellcode

    1. /usr/bin/mysql --version