php exec () - mysqldump erzeugt eine leere Datei
Ich möchte ein Backup aus einer Datenbank erstellen, erhalte aber nur eine leere Datei.
include('config.php');
$command = "mysqldump --opt -h ".$_host." -u ".$_user." -p ".$_pass." ".$_db." > test.sql";
exec($command);
echo "<br />".$command;
test.sql wird dort erstellt, wo sich die .php-Datei befindet.
Bearbeiten:
Hinweis! Ich benutze XAMPP WINDOWS!
Lösung:
Da ich einen Windows-Webserver (XAMPP) verwende, musste ich den Pfad angeben:
$command = 'd:\xampp\mysql\bin\mysqldump --opt -u '.$_user.' -p'.$_pass.' '.$_db.' > test.sql';
Ich habe das Leerzeichen zwischen -p und dem Pass entfernt. Es sieht aus wie:-pMYPASSWORD
Ersetzt"
mit'
Ich denke, wenn Sie einen Linux-basierten Webserver verwenden, müssen Sie den Pfad für mysqldump nicht angeben.
Prost! :-)