Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2007
    Messaggi
    542

    Backup di dati che soddisfano una condizione

    Ciao a tutti,
    ho un database MySQL su host con tabelle organizzate per contenere dati di più aziende:
    Esempio tabella utenti:
    id_utente, id_azienda, nome, cognome, ecc.

    Vorrei eseguire un backup del database con i soli dati di un id_azienda
    esempio id_azienda = 2

    E' possibile?

    Sul forum ho trovato questo script che esegue il backup di tutto il db ed invia il file.sql via e-mail, è adattabile?

    Codice PHP:
        $email "io@miodominio.it";
        
    $host="localhost";
        
    $user="usare";
        
    $password="password";
        
    $database="miodb";
        
        
    $bk "/backup-giornaliero-db/backup" date("d") . ".sql";
        
        if ( 
    file_exists($bk) ) unlink($bk);
        
    system(
        
    "mysqldump --user=$user --password=$password --host=$host $database > $bk",$res
        
    );
        
    $dimensione filesize($bk);
        switch (
    $dimensione
        {
            case (
    $dimensione>=1048576):
                
    $dimensione round($dimensione/1048576) . " MB"; break;
            case (
    $dimensione>=1024):
                
    $dimensione round($dimensione/1024) . " KB";
            break;
            default: 
    $dimensione $dimensione " bytes"; break;
        }
        
        
    $testo "Backup per il database " $database " eseguito.\n\n";
        
    $testo .= "Sql: " $res "\n\n";
        
    $testo .= "Percorso: " $bk "\n\n";
        
    $testo .= "Dimensione: " $dimensione "\n\n";
        
    $testo .= "Tempo di esecuzione: " date(" F d h:ia") . "\n\n";
        
    mail($email"Database Backup" $testo"From: Website <>"); 
    Per quanto riguarda l'utilizzo dei dati di backup dell'azienda, sto pensando ad un utilizzo in locale in modo da lasciare integro il database su host.

    Grazie a chi vorrà aiutarmi
    Guidino

  2. #2
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    mysqldump -u utente -p password nome_db nome_tabella --where="id_azienda=2" > backup.sql

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2007
    Messaggi
    542
    Grazie della risposta.
    una domanda:

    Volendo fare il backup di tutte le tabelle del mio database, sempre con la clausola -where="id_azienda=2", come si fa a indirizzare l'output sql in un unico file in modo da spedirmelo via e-mail?

    Scrivendo come riportato di seguito, in backup.sql mi trovo il contenuto delle due tabelle o solo dell'ultima?

    mysqldump -u utente -p password nome_db nome_tabella1 --where="id_azienda=2" > backup.sql
    mysqldump -u utente -p password nome_db nome_tabella2 --where="id_azienda=2" > backup.sql


    Grazie.

    Dove posso trovare tutte le specifiche di mysqldump?
    Guidino

  4. #4
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    mysqldump primo risultato su google.

    codice:
    mysqldump -u utente -p password nome_db nome_tabella1 nome_tabella2 nome_tabellaN --where="id_azienda=2" > backup.sql
    Il secondo comando sovrascrive il primo file creato.

  5. #5
    Utente di HTML.it
    Registrato dal
    Jan 2007
    Messaggi
    542
    Ti ringrazio,
    se posso specificare le tabelle con la clausola where sono a posto.

    La prima prova l'ho fatta su tutto il db ma non esegue il comando
    system("mysqldump --user=$user --password=$password --host=$host $database > db.sql",$res);

    Non da errore, semplicemente se lo beve e passa alla istruzione successiva:
    echo "Finito";

    $user, $password, $hot e $database sono giusti.
    la cartella dove gira lo script e dove dovrebbe creare il file.sql ha permessi = 777

    ho lanciato phpInfo() per capire se system è disabilitato:

    ho questa configurazione:

    disable_functions no value

    Configure Command './configure' '--with-layout=GNU' '--with-config-file-scan-dir=/usr/local/etc/php' '--disable-all' '--enable-libxml' '--with-libxml-dir=/usr/local' '--enable-reflection' '--program-prefix=' '--disable-path-info-check' '--with-apxs2=/usr/local/sbin/apxs' '--with-regex=php' '--with-zend-vm=CALL' '--enable-zend-multibyte' '--disable-ipv6' '--prefix=/usr/local' '--mandir=/usr/local/man' '--infodir=/usr/local/info/'

    Mi puoi aiutare?

    Grazie
    Guidino

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.