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:-pMYPASSWORD
Zastąpiony"
z'
Myślę, że jeśli używasz serwera WWW opartego na Linuksie, nie musisz określać ścieżki dla mysqldump.
Twoje zdrowie! :-)