php exec () - mysqldump tworzy pusty plik

Chcę utworzyć kopię zapasową z bazy danych, ale otrzymuję tylko pusty plik.

include('config.php');

$command = "mysqldump --opt -h ".$_host." -u ".$_user." -p ".$_pass." ".$_db." > test.sql";
exec($command);

echo "<br />".$command;

test.sql jest tworzony w miejscu, w którym znajduje się plik .php.

Edytować:

Uwaga! Używam WINDOWS XAMPP!

Rozwiązanie:

Ponieważ używam Windows Web Server (XAMPP), musiałem określić ścieżkę:

$command = 'd:\xampp\mysql\bin\mysqldump --opt -u '.$_user.' -p'.$_pass.' '.$_db.' > test.sql';
Usunąłem spację między -p a przepustką. To wygląda jak:-pMYPASSWORDZastąpiony" z'

Myślę, że jeśli używasz serwera WWW opartego na Linuksie, nie musisz określać ścieżki dla mysqldump.

Twoje zdrowie! :-)

questionAnswers(7)

yourAnswerToTheQuestion