mysqldump lijkt niet te worden herkent door windows 8
onderstaand mysql commando wordt niet uitgevoerd wanneer we hem aanspreken via php en dit op een wampserver op een windsows 8 pc.
Het commando zelf wil via de console wel lopen.
Heeft iemand enig idee wat er kan fout zijn?
Code (php)
1
2
3
2
3
<?php
system('mysqldump -user --opt dvcheilighart | mysql --host="" --user="" --password="" -C dvcheilighart'));
?>
system('mysqldump -user --opt dvcheilighart | mysql --host="" --user="" --password="" -C dvcheilighart'));
?>
Gewijzigd op 10/04/2014 11:16:49 door De Clercq Andy
En als je het volledige pad naar mysqldump.exe in system() gebruikt?
De user zou in het commando opgegeven zou bovendien create rechten moeten hebben op die database.
Persoonlijk hou ik niet zo van om dergelijke commando's redelijk blind uit te voeren.
Als mysqldump mislukt of iets oplevert wat niet de bedoeling was, dan sloop je mogelijk de database waarheen je de dump stuurt.
(tenminste: dat is toch wat je doet hier? dump op lokaal maken en dan sturen naar een database op een andere server?)
De return waarde van system is de laatste regel van het commando, misschien zie je daarmee wat meer.
bedankt voor de snelle reacties.
Van de gevaren zijn we ons bewust en dat is inderdaad wat we doen, onze verantwoordelijke past de website eerst okaal aan en dan eens hij op punt staat "dumpt" hij dit naar onze webserver. Vroeger werkte dit perfect maar nu na de installatie van windows 8 niet meer.
Met meegeven pad bedoel je waarschijnlijk een dergelijk iets:
Code (php)
1
2
3
2
3
<?php
$command='c:\wamp\mysqldump.exe -h192.168.254.199 -ukarel -p --opt dvcheilighart | mysql --host="" --user="" --password="" -C dvcheilighart';
?>
$command='c:\wamp\mysqldump.exe -h192.168.254.199 -ukarel -p --opt dvcheilighart | mysql --host="" --user="" --password="" -C dvcheilighart';
?>
Maar dat geeft zelfde probleem, werkt wel via de console op een andere pc maar niet via php.
Ook dit commando opslaan in een .bat en dan aanroepen via windows 8 (dit was een plan b) lukt niet.
Kan zijn dat je UAC (User Account Control) in de weg zit, of dat je dit commando met elevated privilages moet runnen (uitvoeren als administrator).
"mysql" is namelijk ook gewoon een .exe die gevonden moet worden
zoals hogerop gevraagd heb ik de foutafhandeling terug aan gezet en het geheel in een echo opdracht gezet en alles werkt prima.
Iedereen hartelijk dank voor de snelle en goede hulp!