Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2005
    Messaggi
    24

    cercasi aiuto x mysqldump

    Non riesco a fare il backup di un database con mysqldump...
    su una pagina php eseguo il seguente codice:
    codice:
    <?
       system("mysqldump --opt nome_db >      C:\path\backup.txt");
    ?>
    Qualcuno sa dirmi dove e perchè sbaglio e aiutermi x favore???
    Grazie.

  2. #2
    Utente di HTML.it L'avatar di Teuzzo
    Registrato dal
    Mar 2002
    Messaggi
    969
    Che errore ti da?
    Te lo crea il file? Se si cosa c'è scritto?
    Hai una password sul mysql?
    Sistema operativo?

  3. #3
    Utente di HTML.it L'avatar di gianiaz
    Registrato dal
    May 2001
    Messaggi
    8,027
    codice:
    <?php
    $risultato = system("mysqldump --opt nome_db >      C:\path\backup.txt", $output);
    ?>
    
    echo $risultato;
    echo $output;
    comincia a vedere cosa ti dice.

    cia

  4. #4
    Utente di HTML.it L'avatar di Teuzzo
    Registrato dal
    Mar 2002
    Messaggi
    969
    Visto la scritta C:\path\backup.txt sei su win.
    Allora ti manca il percorso del mysqldump, lo username (di default dovrebbe essere odbc) e la passw.

    c:/percorso_mysql/bin/mysqldump --user=tuo_usr --password=tua_passw nome_db > C:\path\backup.txt

  5. #5
    Utente di HTML.it
    Registrato dal
    Oct 2005
    Messaggi
    24
    codice:
    <?php
    $risultato = system("mysqldump --opt nome_db >      C:\path\backup.txt", $output);
    ?>
    
    echo $risultato;
    echo $output;

    ho provato così e $risultato non da nulla mentre $output restituisce 1...

    cosa significa?

  6. #6
    Utente di HTML.it L'avatar di gianiaz
    Registrato dal
    May 2001
    Messaggi
    8,027
    Originariamente inviato da metkappa
    codice:
    <?php
    $risultato = system("mysqldump --opt nome_db >      C:\path\backup.txt", $output);
    ?>
    
    echo $risultato;
    echo $output;

    ho provato così e $risultato non da nulla mentre $output restituisce 1...

    cosa significa?
    mmm $risultato se la chiamata al comando nn va a buon fine dovrebbe essere FALSE e in output ci dovrebbe essere il messaggio restituito dopo l'errore...

    Prova a fare come dice Teuzzo, io non sono praticissimo di win...

    ciao

  7. #7
    Utente di HTML.it
    Registrato dal
    Oct 2005
    Messaggi
    24
    Aveva ragione Teuzzo!!mi mancava il percorso...Grazie a tutti!!!Siete stati Gentilissimi!!!

  8. #8
    Utente di HTML.it
    Registrato dal
    Apr 2008
    Messaggi
    111
    riesumo la vecchia discussione perchè ho lo stesso problema ma non riesco a risolverlo.

    sto testando in locale su windows, ma il server online è su linux.
    Codice PHP:
    $bkupath './db_backups';

    exec('C:/Program Files/MySQL/MySQL Server 5.1/bin/mysqldump -h'.$host.' -u'.$userid.' -p'.$password.' '.$dbname.' > '.$bkupath.'/'.$dbname.'.sql'$output$res);

    if(
    $res>0) echo "errori";
    else echo 
    "ok";

    //OPPURE

    system('C:/Program Files/MySQL/MySQL Server 5.1/bin/mysqldump -h'.$host.' -u'.$userid.' -p'.$password.' '.$dbname.' > '.$bkupath.'/'.$dbname.'.sql'$output); 
    non succede nulla. nel primo caso $res è sempre =1.
    mettendo backslash nel path non succede nulla. anche senza path non succede nulla. lasciando degli spazi tra -h e host o tra -u e utente, non succede nulla.
    naturalmente password utente host e database sono corretti.
    ho dato tutti i diritti di scrittura sulla cartella di destinazione del file, e comunque riesco a scriverci file con php.

    ad ogni modo mi servirebbe un path relativo per trovare l'eseguibile mysqldump anche sul server.

  9. #9
    Utente di HTML.it
    Registrato dal
    Apr 2008
    Messaggi
    111
    AGGIORNAMENTO (scusate ma non posso più editare il messaggio qua sopra):

    eseguendo il comando da cmd funziona, mentre in php viene prodotto un file vuoto
    Codice PHP:
    $per 'C:/Program Files/MySQL/MySQL Server 5.1/bin/';
    $bkpath './db_backups/';

    exec($per.'mysqldump -h'.$host.' -u'.$userid.' -p'.$password.' --opt '.$dbname.' > '.$bkpath.$dbname.'.sql'); 
    naturalmente password utente host e database sono corretti.
    ho dato tutti i diritti di scrittura sulla cartella di destinazione del file, e comunque riesco a scriverci file con php.
    inoltre non capisco perchè se rimuovo l'argomento --opt dalla linea di comando il backup viene eseguito correttamente lo stesso, mentre in php non viene più prodotto nemmeno il file: non succede nulla.

    ho il sospetto che il problema stia nell'indirizzo dell'eseguibile mysqldump, dato che non funziona ne con gli slash ne con i backslash. ad ogni modo mi servirebbe un path relativo per trovarlo anche sul server remoto, dove c'è linux.

    potrebbe altrimenti essere qualche impostazione di php?
    grazie

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 © 2024 vBulletin Solutions, Inc. All rights reserved.