Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2002
    Messaggi
    957

    [mysqldump] dump dei dati da php

    Ciao,
    è possibile fare il dump chiamando da php il relativo comando:
    command("mysqldump.... > file.sql");
    Perchè il mio problema è che non riesco a immettere la password, se faccio
    mysqldump -u root -p password dbname
    anche da shell me la da errata, se invece non specifico -p (e quindi me la chiede da shell) allora funziona... ma non posso usarlo da php
    Perchè?

  2. #2
    ti posto un esempio funzionante sul mio pc.

    codice:
    <?php
    exec("mysqldump -u root -ptuapwd --add-drop-table --default-character-set=latin1 --databases nomedb --tables tableA tableB tableC > dev:\tuo_path\file.sql");
     
     ?>

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  3. #3

  4. #4
    Utente di HTML.it
    Registrato dal
    Feb 2002
    Messaggi
    957
    si, posso farlo con phpmyadmin, ma vorrei automatizzarlo nel sito...

    cmq alla fine ho trovato, il problema è che la password va attaccata alla "-p"
    cioè se la password è PIPPO:
    "mysqldump ... -pPIPPO" e non "mysqldump -p PIPPO"

    il problema però è che se scrivo il comando su shell il file viene creato correttamente, se lo STESSO IDENTICO comando lo mando tramite system(), mi crea un file vuoto.
    Pazzesco, ho provato con altri comandi tipo
    system("dir > prova.txt")
    e tutto funziona, ma con mysqldump crea un file, ma è vuoto....

  5. #5
    forse che da shell dai il comando dalla cartella bin? con il php devi assicurarti che il path a mysqldump sia definito. prova a passare ad exec il path completo di dove si trova l'eseguibile.

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  6. #6
    Utente di HTML.it
    Registrato dal
    Feb 2002
    Messaggi
    957
    non credo perchè il file viene creato! Solo che è vuoto!

  7. #7
    Originariamente inviato da GoldEmish
    non credo perchè il file viene creato! Solo che è vuoto!
    ok per la destinazione, ma essendo quello un comando shell da DOS se non trova l'eseguibile la destinazione la crea comunque ma vuota. Controlla che il path all'eseguibile mysqldump sia nel path di sistema, oppure metti il percorso completo prima del comando.

    exec("c:\programmi\mysql\tuo path\mysqldump .....

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  8. #8
    Utente di HTML.it
    Registrato dal
    Feb 2002
    Messaggi
    957
    Ho fatto questo test:
    Ho stampato a schermo il comando che invio:

    echo $comando;
    system($comando);

    L'ho copiato nella shell dalla posizione della pagina (documentroot di apache) e funziona tutto!
    Quindi non credo sia un problema di path, perchè lo stesso comando (copiato dal browser) incollato sulla shell va.

  9. #9
    Utente di HTML.it
    Registrato dal
    Feb 2002
    Messaggi
    957
    Provando con la path completa all'exe funziona

    Però il path è impostato nelle variabili di sistema, è system() che non lo trova (ho verificato che sia impostato il path sulle variabili e anche provando da shell funziona ovunque)....

    Non mi spiego perchè la path non vada su system() , però almeno so come farlo andare!

    Grazie

  10. #10

    errore di DEFAULT WEB SITE

    ciao,

    sto testando mysqldump seguendo i vostri consigli ma con tutte le varie prove, da ieri, ricevo sempre questo messaggio

    Errore del server nell'applicazione "DEFAULT WEB SITE"

    Errore HTTP 502.2 - Bad Gateway
    L'applicazione CGI specificata non ha restituito un insieme completo di intestazioni HTTP. Le intestazioni restituite sono "Accesso negato. X-Powered-By: PHP/5.2.6 Content-type: text/html
    Warning: system() [function.system]: Cannot execute a blank command in C:\inetpub\wwwroot\gestionale\archivi\arc.php on line 10
    ".


    il codice usato nell'ultima prova è
    Codice PHP:
    exec("c:\Program Files\MySQL\MySQL Server 5.0\bin>mysqldump -u root -p12345 --add-drop-table --default-character-set=latin1 --databases sql195624_1 --tables ordini anagrafica prodotti > c:\file.sql");

    echo 
    $comando;
    system($comando); 
    dove vado a parare?
    ---------------------------
    danielix05

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