[RESOLU] mysqldump, php et dump vide :(

mysqldump, php et dump vide :( [RESOLU] - PHP - Programmation

Marsh Posté le 15-04-2010 à 14:15:16    

Bonjour à tous,
 
Je cherche à faire un dump de ma BDD à travers PHP.
 
Pour cela, j'utilise la commande ci-dessous :
 

Code :
  1. exec(mysqldump --opt  --u root BASE >FICHIER)


 
A l'exécution du script (en local), je vois une fenêtre DOS apparait rapidement, puis disparait.
En résultat, mon fichier est bien créé, mais vide (0 ko).
En testant la commande sous DOS, ca fonctionne bien (fichier créé et complet).
Quelqu'un a une idée ? Ca fait 4H00 que je cherche, et je ne trouve rien :(
 
 
Quelqu'un saurais comment je pourrais faire pour que la fenêtre DOS ne se ferme pas ? Il y a peut être une piste dessus ...
 
Merci
 
J'utilise :
- Windows XP
- EasyPHP
- serveur en local pour mes tests, puis en ligne.
 
 
EDIT : J
SOLUCE : j'ai bien ajouté le mysqldump aux PATH, mais je n'avais pas redémarré XP ! Merci à tous !


Message édité par xxbenitoxx le 15-04-2010 à 15:20:57
Reply

Marsh Posté le 15-04-2010 à 14:15:16   

Reply

Marsh Posté le 15-04-2010 à 14:25:51    

les chemins d'accès sont bons ?  
 
qu'est ce que donne

Code :
  1. echo exec(mysqldump --opt  --u root BASE >FICHIER);

Reply

Marsh Posté le 15-04-2010 à 14:27:23    

si le chemin de ton mysqldump n'est pas dans la variable d'environnement PATH, ça risque pas de fonctionner. Je parie que quand tu fais le test sous DOS, t'es dans le répertoire où se trouve mysqldump.
 
Edit : et perso, j'utilise shell_exec() pour faire un dump en ligne de commande sous php.


Message édité par rufo le 15-04-2010 à 14:35:26

---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 15-04-2010 à 14:45:55    

FLO, le résultat est : que dalle !!! rien, même pas un 0.
 
RUFO : Et si, j'ai ajouter le répertoire "c: ... easyphp ... bin" à la variable d'environnement.
 
Par contre, le problème ne doit pas en être loin.
 
Lorsque je fais un  

Code :
  1. passthru("DIR" )

,
 mon script PHP affiche bien le contenu du dossier.
 
Cependant, lorsque je fais  

Code :
  1. passthru("mysqldump" )

,
il ne m'affiche que dalle. Alors que si je tape "mysqldump", sous DOS et a partir de n'importe quel dossier, je reçois :
 
Usage: mysqldump [OPTIONS] database [tables]
OR     mysqldump [OPTIONS] --databases [OPTIONS] DB1 [DB2 DB3...]
OR     mysqldump [OPTIONS] --all-databases [OPTIONS]
For more options, use mysqldump --help

 
 
Je pense que PHP n'arrive pas a interprété la commande mysqldump, même si il arrive tout de même a créer le FICHIER.
 


Message édité par xxbenitoxx le 15-04-2010 à 14:48:45
Reply

Marsh Posté le 15-04-2010 à 14:47:43    

et juste pour etre sur  
exec("mysqldump --opt  --u root BASE >FICHIER" )

Reply

Marsh Posté le 15-04-2010 à 14:52:15    

moi, j'ai aucun pb pour faire un dump avec mysqldump via php avec shell_exec() sauf que partout, je mets le chemin en absolu (pour mysqldump et le fichier dump).


Message édité par rufo le 15-04-2010 à 14:52:38

---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 15-04-2010 à 14:52:44    

ouai ou juste ca

Code :
  1. echo `mysqldump`;
  2.  
  3. /*
  4. Usage: mysqldump [OPTIONS] database [tables]
  5. OR     mysqldump [OPTIONS] --databases [OPTIONS] DB1 [DB2 DB3...]
  6. OR     mysqldump [OPTIONS] --all-databases [OPTIONS]
  7. For more options, use mysqldump --help
  8. */

Message cité 2 fois
Message édité par stealth35 le 15-04-2010 à 14:53:17
Reply

Marsh Posté le 15-04-2010 à 14:52:47    

non, pas mieux :(.
 
Hormis les double quote, ... c'est la même qu'avant, non ? (sans les quotes, ERREUR)

Reply

Marsh Posté le 15-04-2010 à 14:54:44    

stealth35 a écrit :

ouai ou juste ca

Code :
  1. echo `mysqldump`;
  2.  
  3. /*
  4. Usage: mysqldump [OPTIONS] database [tables]
  5. OR     mysqldump [OPTIONS] --databases [OPTIONS] DB1 [DB2 DB3...]
  6. OR     mysqldump [OPTIONS] --all-databases [OPTIONS]
  7. For more options, use mysqldump --help
  8. */



félicitation tu viens de lui faire afficher mysqldump

 


essaye

Code :
  1. echo exec("mysqldump" );
 

puis

 
Code :
  1. echo exec("/le/chemin/vers/mysqldump" );


Message cité 1 fois
Message édité par flo850 le 15-04-2010 à 14:55:09
Reply

Marsh Posté le 15-04-2010 à 14:55:33    

xxbenitoxx a écrit :

non, pas mieux :(.
 
Hormis les double quote, ... c'est la même qu'avant, non ? (sans les quotes, ERREUR)


 
ouai les quote comme ca reviens a faire shell_exec
mais bon c'est que c'est pas dans ton PATH
 
fait un :

Code :
  1. echo $_SERVER["PATH"];


Reply

Marsh Posté le 15-04-2010 à 14:55:33   

Reply

Marsh Posté le 15-04-2010 à 14:56:39    

flo850 a écrit :


félicitation tu viens de lui faire afficher mysqldump  


" !== `
' !== '
 
http://www.php.net/manual/fr/langu [...] cution.php
 
félicitation pour ta culture...
 
et exec ca affiche uniquement la premiere ligne


Message édité par stealth35 le 15-04-2010 à 14:58:20
Reply

Marsh Posté le 15-04-2010 à 14:58:02    

stealth35 a écrit :

ouai ou juste ca

Code :
  1. echo `mysqldump`;



 
Ça affiche mysqldump ;).
 
Sinon, j'ai essayé ça :

Code :
  1. echo exec('mysqldump');
  2. echo shell_exec('mysqldump');
  3. echo system('mysqldump');
  4. echo passthru('mysqldump');

Et pour les 4, je ne reçois rien !

Reply

Marsh Posté le 15-04-2010 à 14:58:44    

c'est ec que je dis depuis le début que ça variable PATH (celle du DOS) n'est pas renseignée avec le chemin de mysqldump. Il me soutient que si, sa preuve : passthru("DIR" );

Citation :

mon script PHP affiche bien le contenu du dossier


 
-> Je ne vois pas trop le rapport entre DIR et PATH :/


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 15-04-2010 à 14:59:09    

et pour  
echo $_SERVER["PATH"]; ?

Reply

Marsh Posté le 15-04-2010 à 15:02:26    

:).
 
J'ai ajouter mysqldump dans le PATH de WINDOWS :P ...
 
$_SERVER['PATH'] ne me donne pas le lien du mysqldump , j'espère tout simpleùment que c'est ca :P !

Reply

Marsh Posté le 15-04-2010 à 15:04:11    

tu dois juste donnée le dossier bin de ton mysql


Message édité par stealth35 le 15-04-2010 à 15:04:18
Reply

Marsh Posté le 15-04-2010 à 15:04:42    

Je le met ou exactement ...?

Reply

Marsh Posté le 15-04-2010 à 15:05:58    

dans la variable PATH de DOS et après faut rebooter il me semble pour que ça soit pris en compte.


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 15-04-2010 à 15:07:45    

ouai touche   windows + pause  -> avancé -> variable environement -> variable systeme -> PATH
 
après comme dis rufo tu reboot (juste le serveur ca suffis)

Reply

Marsh Posté le 15-04-2010 à 15:08:42    

Oh put***, ... j'ai peur d'un truc ....

Reply

Marsh Posté le 15-04-2010 à 15:11:14    

oui, ton script marchera pas si la variable PATH n'est pas renseignée correctement. Voilà pourquoi en php, on fait plutôt un fichier de conf et qu'on définit des constantes avec define()... C'est plus pratique et plus portable d'un serveur à l'autre (surtout si ton serveur de dév est en windows et celui de prod en Linux, ce qui est mon cas).


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 15-04-2010 à 15:11:25    

xxbenitoxx a écrit :

Oh put***, ... j'ai peur d'un truc ....


 
t'as tout virer ?

Reply

Marsh Posté le 15-04-2010 à 15:13:11    

Non, je n'avais pas redémarrer Apache depuis que j'ai modifié le PATH.
 
Pat contre, je n'ai pas redémarrer WinXP non plus ... je suis de retour dans 2 minutes !
 
Et comme j'ai le lien dans le PATH depuis le début ( je le maintien RUFO ;) ), et pas dans PHP .. le problème est suremetn de la .. (en tous cas je l'espère) !

Reply

Marsh Posté le 15-04-2010 à 15:19:33    

C'est malheureux à dire ... mais sa fonctionne :) !
 
Tout ca parce que j'avais oublier de redémarrer Windows ... JE ferai mieux de retourner son Linux :P !
 
Je vous remercie tous pour  m'avoir aider à résoudre ce problème, qui n'en était pas un =D !

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed