Datenbank-Backup

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

  • #16
    So hier sollte das eigentlich funktionieren:

    PHP-Code:
    <?php
     
    // Enter your MySQL access data  
     
    $host'dbhost';         
     
    $user'dbuser';               
     
    $pass'dbpassword';
     
    $db=   'db';

     
    $backupdir 'backups';   

     
    // Compute day, month, year, hour and min.
     
    $today getdate();
     
    $day $today[mday];
     if (
    $day 10) {
        
    $day "0$day";
     }
     
    $month $today[mon];
     if (
    $month 10) {
         
    $month "0$month";
     }
    $year $today[year];
     
    $hour $today[hours];
     
    $min $today[minutes];
     
    $sec "00";

     
    // Execute mysqldump command.
     // It will produce a file named $db-$year$month$day-$hour$min.gz 
     // under $DOCUMENT_ROOT/$backupdir
     
    system(sprintf
       
    'mysqldump --opt -h %s -u %s -p%s %s | gzip > %s/%s/%s-%s%s%s-%s%s.gz',                                                 
       
    $host,
       
    $user,
      
    $pass,
       
    $db,
       
    getenv('DOCUMENT_ROOT'),
       
    $backupdir,
     
    $db,
       
    $year,
       
    $month,
       
    $day,
       
    $hour,
      
    $min
     
    ));  
     echo 
    '+DONE';  
    ?>
    Quelle: php.net
    Zuletzt geändert von Uzimaster; 12.08.2003, 18:18.

    Kommentar


    • #17
      confixx

      Hallo alle zusammen,

      weiss nicht ob es hier her gehört, aber das problem entstand im laufe dieses threads. Also, fehler von vorhin, als ich das mit exec() probiert habe. Diesen befehl genommen, und mal direkt in telnet reingeschreiben:

      quasi:

      Code:
      usr/bin/mysqldump --opt -e -l --add-drop-table --host=localhost --user=web3 --password=passwort usr_web3_2 > /home/www/web3/html/test/backup/mysql.sql
      Die zugangsdaten sind aus der dbconnect des Projektes genommen, also host/username/passwort gehen, wenn ich z.B. einen Select query ausführen will in einem phpscript

      hier kommt aber folgender Fehler:

      Code:
      Got error: 1045: Access denied for user: 'web3@localhost' (Using password: YES) when trying to connect
      Meine Vermutung ist, das confixx irgendwie seine Finger mit im Spiel hat, und dass hintenrum umleitet oder teufel was tut.

      jedenfalls gehen die daten in der dbconnect, und hier nicht.

      woran kann das liegen?

      mfg Martin
      Evtl. Rechtschreibfehler sind beabsichtigt und dienen der Belustigung des Lesers

      Kommentar


      • #18
        Zurückschreiben geht nich

        Hallo,

        ich habe eine datei, mysql.sql die ich mir durch folgenden Code
        erstellen lasse:
        Code:
        exec('C:/SERVER/mysql/bin/mysqldump --opt -e -l --all --allow-keywords --quote-names --flush-logs --add-drop-table --host='.$sqlhost.' --user='.$sqluser.' --password='.$sqlpass.' '.$database.' > '.$_SERVER['DOCUMENT_ROOT'].'/'.$default['cookie_path'].'/backup/mysql.sql',$mysql,$mysql2);

        jetzt will ich diese Datei mit folgendem Befehl einlesen:



        Code:
        exec('C:/SERVER/mysql/bin/mysql --host='.$sqlhost.' --user='.$sqluser.' --force --password='.$sqlpass.' --database '.$database.' < '.$_SERVER['DOCUMENT_ROOT'].'/'.$default['cookie_path'].'/mysql.sql',$mysql,$mysql2);
        dabei überliest er aber anscheinend folgenden Teil:
        wobei er den DROP Teil noch ausführt, aber erstellen tut er die Tabelle nicht mehr, komme auch keine Fehlermeldungen.

        --
        -- Table structure for table 'module'
        --

        DROP TABLE IF EXISTS `module`;
        CREATE TABLE `module` (
        `id` smallint(4) unsigned NOT NULL auto_increment,
        `name` tinytext NOT NULL,
        `internet_homepage` text NOT NULL,
        `internet_email` tinytext NOT NULL,
        `anschrift_firma` tinytext NOT NULL,
        `anschrift_name` tinytext NOT NULL,
        `anschrift_strasse` tinytext NOT NULL,
        `anschrift_ort` tinytext NOT NULL,
        `anschrift_telefon` tinytext NOT NULL,
        `anschrift_mobil` tinytext NOT NULL,
        `anschrift_fax` tinytext NOT NULL,
        `bank_inhaber` tinytext NOT NULL,
        `bank_kontonummer` tinytext NOT NULL,
        `bank_bankleitzahl` tinytext NOT NULL,
        `bank_institut` tinytext NOT NULL,
        `bank_betrag` tinytext NOT NULL,
        `modul_language` smallint(4) unsigned NOT NULL default '0',
        `modul_rechtelevel` enum('1','2','3') NOT NULL default '1',
        `modul_username` tinytext NOT NULL,
        `modul_passwort` tinytext NOT NULL,
        PRIMARY KEY (`id`)
        ) TYPE=MyISAM COMMENT='Tabelle in der alle Informationen bezüglich der Modulbesitze';

        /*!40000 ALTER TABLE `module` DISABLE KEYS */;

        --
        -- Dumping data for table 'module'
        --


        LOCK TABLES `module` WRITE;

        /*!40000 ALTER TABLE `module` ENABLE KEYS */;
        UNLOCK TABLES;

        Muss ich evtl. noch andere Parameter in einer der beiden exec setzen?
        Hab eigentlich was an sicherheit geht (--allow-keywords, --quote-names) gesetzt, die restlichen 20tables liest er ohne Probleme ein, und diese table ist weder am ende noch am anfang, sonder halt irgendwo mitten drinne.

        mfg Martin
        Evtl. Rechtschreibfehler sind beabsichtigt und dienen der Belustigung des Lesers

        Kommentar

        Lädt...
        X