kostenloser Webspace werbefrei: lima-city


Datenbankbackup per PHP

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    m********e

    Liebe LC-Community!
    Aus mir noch unerklärlichen Gründen habe ich vor ein paar Tagen mein phpMyAdmin an die Wand gefahren und kann es derzeit auch nicht reparieren. Nun benötige dringend ein Backup einer Datenbank. Über Navicat Lite und Kollegen komm ich da leider nicht ran, denn meine SQL-Einstellungen verbieten den Zugriff von außerhalb - und das soll auch bleiben. Die Frage, die aufkommt ist nun:
    Kann man über PHP eine Ausgabe (beispielsweise eine SQL-Datei oder rein über die echo Variante) der Datenbankinhalte inklusive eines CREATE TABLE-Satzes erstellen? Ich bin dazu unfähig und hoffe auf Unterstützung (gerne düft ihr auch alternative Software nennen).
    LG master2die
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Mir fällt da spontan nur ein die Datenbankfelder auszulesen.
    Den kompletten Create Table-Befehl wirst du glaub ich nicht bekommen können.
    Hier eine Hilfe (mysql_field_name( ), mysql_field_type( ),...):
    http://de3.php.net/manual/de/book.mysql.php
    Viel Erfolg beim Retten der Daten
  4. thomasba

    Co-Admin Kostenloser Webspace von thomasba

    thomasba hat kostenlosen Webspace.

    Wenn dir der exec-Befehl zur verfügung steht, kannst du folgendes Verwenden:
    <?php
    header("Content-Type: text/plain");
    $datum= date("Ymd-Hi");
    $dbs=array("db1 db2 db3");
    $dir = "/var/www/backup/"; // Absoluter verzeichnispfad!
    $db_user = "username";
    $db_pass = "password";
    echo "Backuptime: ".$datum."\n";
    foreach($dbs AS $db) {
    	$file = $datum."_".$db.".sql.bz2";
    	echo "Backing up $db in $file\n";
    	// als kompression wird bzip2 verwendet, evtl anpassen.
    	exec("mysqldump --opt --hex-blob -u$db_user -p$db_pass $db | bzip2 > $dir$file");
    }
    echo "MySQL Backup completed\n";
    ?>
  5. Sowas kann man sich doch ganz leicht selber basteln. Hier ein einfacher Befehl zum Auslesen einer Tabelle:


    <?php
    $tabellenname = 'x'; // hier Tabellenname festelen
    
        $sql = "SELECT
                    *
                FROM
                    ".$tabellenname.";";
    
        $all = array(); // neues Array erstellen, in dem alle Daten gespeichert werden sollen
        $result = mysql_query($sql) OR die(mysql_error());
        while($row = mysql_fetch_assoc($result)) {
            $all[] = $row; // Datensatz sepcihern
        } // Schleifenende
    
    print_r($all);
    ?>



    So, jetzt speicherst du den Quelltext, den die Seite ausgibt. Falls du das Backup irgentwann mal reinmachen musst, kannst du daraus alle Informationen entnehmen.

    Beitrag zuletzt geändert: 7.10.2009 18:55:29 von drafed-map
  6. flashmob-riedlingen

    flashmob-riedlingen hat kostenlosen Webspace.

    Einfach mal ein wenig googlen ;)

    Hier gibts zum Beispiel einen recht simplen Script um einen kompletten Dump der Datenbank zu bekommen. Dazu können SQL-Funktionen wie "SHOW CREATE TABLE" verwendet werden.

    http://www.wer-weiss-was.de/theme163/article2952225.html
  7. Da gibt es ein einfaches Tool:
    http://www.mysqldumper.de/

    Damit lassen sich auch große MySql Datenbänke sichern, bei denen PHP evtl. an das 30 sek Laufzeitlimit kommen würde.

    Viele Grüße,
    Felix
  8. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!