einfacher Mysql Backup mit PHP??

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • einfacher Mysql Backup mit PHP??

    Hallo, ich hab, um meine Datenbank zu sichern dieses Script ausprobiert:
    THREAD

    Nur ich bekomme es einfach nicht ans laufen. Was muss ich denn wo einstellen, damit einfach alle 5 Tage ein Backup geschrieben wird? Dieses Backup soll auf ein im Server eingebautes ZIP Laufwerk geschrieben werden. Und vor allem sollen diese ganzen Meldungen und die GUI weg, der User soll davon nichts mitbekommen. Auch würde ich die Backup dateien gern mit PHP wieder einlesen können. Wie geht das den dann?Also ic hhab nen Apache hier installiert, habe folglich alle Rechte, nur ich kapier nicht wo ich was einstellen muss.... HELFT MIR, danke

  • #2
    Was muss ich denn wo einstellen, damit einfach alle 5 Tage ein Backup geschrieben wird?
    cronjob



    und was hat das jetzt mit php zu tun?

    *VERSCHIEB* zu den install/config fragen
    INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


    Kommentar


    • #3
      also ich hab mir jetzt diesen Code im INternet gesucht, funzt einwandfrei:

      PHP-Code:
      <?php
      // Script Konfiguration
      $db_host "localhost";                // Hostname
      $db_user "web27";                         // DB User
      $db_pw   "mischa";                         // Passwort
      $db_name "usr_web27_1";                         // Datenbank-Name
      define('MYSQL_HOST',     'localhost');
        
      define('MYSQL_USER',     'web27');
        
      define('MYSQL_PASS',     'mischa');
        
      define('MYSQL_DATABASE''usr_web27_1');
        
      error_reporting(E_ALL);

        
      mysql_connect(MYSQL_HOSTMYSQL_USERMYSQL_PASS) OR
          die(
      "Keine Verbindung zur Datenbank. Fehlermeldung:".mysql_error());
        
      mysql_select_db(MYSQL_DATABASE) OR
          die(
      "Konnte Datenbank nicht benutzen, Fehlermeldung: ".mysql_error());
      $path    "dump/";
      // -----------------------------------------------------
      // Don't change the lines below:
      if (!is_dir($path)) { mkdir($path0777); }
      echo 
      "<b>Datenbank Dump</b><br><br><br>";
      echo 
      "Servername: '".$db_host."'<br>";
      echo 
      "Betriebssystem: ".php_uname()."<br>";
      echo 
      "MySQL-Version: ".mysql_get_server_info()."<br>";
      echo 
      "PHP - Version: ".phpversion()."<br><br>";
      echo 
      "<table border=\"1\">";
      echo 
      "<tr><td>DB Name</td><td>Anzahl Tabellen</td><td>Größe</td></tr>";
      echo 
      "<tr><td>$db_name</td>";
      $database $db_name;
      $zaehler 0;
      $file_name $path.$database."_".date("Y-m-d_H-i").".sql";
      $text  "# --------------------------------------------------------\r\n";
      $text .= "# DATENBANK DUMP\r\n";
      $text .= "# Host: ".$db_host."\r\n";
      $text .= "# Erstellungszeit: ".date("d. F Y")." um ".date("H:i")."\r\n";
      $text .= "# Server Betriebssystem: ".php_uname()."\r\n";
      $text .= "# MySQL-Version: ".mysql_get_server_info()."\r\n";
      $text .= "# PHP-Version: ".phpversion()."\r\n";
      $text .= "# Datenbank: `$database`\r\n";
      $text .= "# --------------------------------------------------------\r\n\r\n";
      $fd fopen($file_name,"a+");
      fwrite($fd$text);
      fclose($fd);
      // Alle Datenbanken auf dem Server suchen
      $c 0;
      $result2 = @mysql_list_tables($database);
      // Tabellenname Array auslesen und aufbauen
      for ($i 0$i < @mysql_num_rows($result2); $i++)
      {
          
      $tabelle = @mysql_tablename($result2,$i);
          if (
      $tabelle != "") {
              
      $tbl_array[$c] = @mysql_tablename($result2,$i);
              
      $c++;
              
      $zaehler++;
          }

      }

      echo 
      "<td align=\"right\">".$zaehler."</td>";
      // Start Ausgabe und Berechnung
      for ($y 0$y $c$y++) {
          
      $tabelle $tbl_array[$y];
      // Struktur der Tabelle einlesen
          
      unset($def,$index);
          
      $def .= "DROP TABLE IF EXISTS $tabelle;\r\n";
          
      $def .= "CREATE TABLE $tabelle (\r\n";
          
      $result3 = @mysql_db_query($database"SHOW FIELDS FROM $tabelle");
          while (
      $row = @mysql_fetch_array($result3)) {
              
      $def .= "    ".$row["Field"]." ".$row["Type"];
              if (
      $row["Default"] != "") { $def .= " DEFAULT '".$row["Default"]."'"; }
              if (
      $row["Null"] != "YES") { $def .= " NOT NULL"; }
              if (
      $row["Extra"] != "") { $def .= " ".$row["Extra"]; }
              
      $def .= ",\r\n";
          }
          
      $def ereg_replace(",\r\n$"""$def);
          
      $result3 = @mysql_db_query($database"SHOW KEYS FROM $tabelle");
          while (
      $row = @mysql_fetch_array($result3)) {
              
      $kname $row["Key_name"];
              if ((
      $kname != "PRIMARY") && ($row["Non_unique"] == 0)) { $kname "UNIQUE|".$kname; }
              if (!isset(
      $index[$kname])) { $index[$kname] = array(); }
              
      $index[$kname][] = $row["Column_name"];
          }
          while (list(
      $xy$columns) = each($index)) {
              
      $def .= ",\r\n";
              if (
      $xy == "PRIMARY"$def .= "    PRIMARY KEY (".implode($columns", ").")";
              else if (
      substr($xy,0,6) == "UNIQUE"$def .= "    UNIQUE ".substr($xy,7)." (".implode($columns", ").")";
              else 
      $def .= "    KEY $xy (".implode($columns", ").")";
          }
          
      $def .= "\r\n);\r\n\r\n";
      // Ende Struktur Modul
          
      $db = @mysql_select_db($database);
          
      $tabelle "".$tabelle;
          
      $text "#\r\n# Daten für Tabelle `$tabelle`\r\n#\r\n\r\n";
          
      $fd fopen($file_name,"a+");
          
      fwrite($fd$text.$def);
          
      fclose($fd);
          unset(
      $data);
          if (
      $tabelle "") {
              
      $ergebnis[] = @mysql_select_db($database);
              
      $result = @mysql_query("SELECT * FROM $tabelle");
              
      $anzahl = @mysql_num_rows($result);
              
      $spaltenzahl = @mysql_num_fields($result);
              for (
      $i 0$i $anzahl$i++) {
                  
      $zeile = @mysql_fetch_array($result);
                  
      $data .= "INSERT INTO $tabelle (";
                  for (
      $spalte 0$spalte $spaltenzahl$spalte++) {
                      
      $feldname = @mysql_field_name($result$spalte);
                      if (
      $spalte == ($spaltenzahl 1)) {
                          
      $data.= $feldname;
                      } else {
                          
      $data.= $feldname.",";
                      }
                  }
                  
      $data .= ") VALUES (";
                  for (
      $k=0;$k $spaltenzahl;$k++) {
                      if (
      $k == ($spaltenzahl 1)) {
                          
      $data .= "'".addslashes($zeile[$k])."'";
                      } else {
                          
      $data .= "'".addslashes($zeile[$k])."',";
                  }
                  }
                  
      $data .= ");\r\n";
              }
              
      $data .= "\r\n";
          } else {
              
      $ergebnis[] = "Keine Tabelle übergeben";
          }

          
      $fd fopen($file_name,"a+");
          
      fwrite($fd$data);
          
      fclose($fd);
      }
      $groesse filesize($file_name) / 1024;
      echo 
      "<td align=\"right\">".number_format($groesse,2)." KB</td></tr>";
      echo 
      "</table><br>";
      echo 
      "Das DB - Backup wurde erfolgreich durchgeführt.<BR>Die Dateien befinden sich im Verzeichniss /".$path."<BR>";
      ?>
      Funzt auch wunderbar, ich bekomme eine schöne, fertige SQL Datei. Nur bekomme ich auch etwa eine Seite fehler. Immer die gleichen:

      Notice: Undefined variable: def in /home/www/web27/html/backup.php on line 67

      Notice: Undefined variable: data in /home/www/web27/html/backup.php on line 107

      Warning: Variable passed to each() is not an array or object in /home/www/web27/html/backup.php on line 85

      Kann mir wer sagen wo die wechkommen, oder auc heinfach nur, wie ich diese Fehlermeldungen abschalten kann (funzt ja...)

      //EDIT
      hab einfach mit ERROR_REPORTING(0) abgeschaltet...

      noch ne frage, ich kann ja mit $path = "dump/"; den Ordner für die Dateien angeben. Kann ich denn dort auch den Pfad zu meinem Zip-Laufwerk eingeben, das ja im Server sitzt z.b. Z:\dump\
      Zuletzt geändert von Simon6785; 08.08.2004, 20:50.

      Kommentar


      • #4
        hab einfach mit ERROR_REPORTING(0) abgeschaltet...
        aua
        schreib lieber anstatt
        PHP-Code:
        unset($def,$index); 
        das hier
        PHP-Code:
        $def='';
        $index=array(); 
        Kann ich denn dort auch den Pfad zu meinem Zip-Laufwerk eingeben, das ja im Server sitzt z.b. Z:\dump\
        Ausprobieren?

        Kommentar


        • #5
          ja, klar, ausprobieren geht leider im Moment noch nicht, da ich erst auf nem normalen Webserverr entwickle, und dann das fertige Programm auf den Server spiele... deshalb müsste ich das schon voher wissen....

          Kommentar


          • #6
            dann stelle dir eben eine vernünftige entwicklungsumgebung zusammen, wo du auch mit echten daten spielen kannst!
            INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


            Kommentar


            • #7
              hm
              nun, wie sieht es denn generell aus, kan nein Apache auf ein Verzeichniss ausserhalb von htdocs zugreifen?

              Kommentar


              • #8
                apache kann nur auf das zugreifen, was erlaubt/konfiguriert ist.
                INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                Kommentar


                • #9
                  wo konfiguriert man das?

                  Kommentar

                  Lädt...
                  X