Chcę utworzyć kopię zapasową z bazy danych, ale otrzymam tylko pusty plik.php exec() - mysqldump tworzy 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.
Edit:
Uwaga! Używam WINDOWS XAMPP!
Rozwiązanie:
Ponieważ używam serwera internetowego Windows (XAMPP), musiałem podać ścieżkę:
$command = 'd:\xampp\mysql\bin\mysqldump --opt -u '.$_user.' -p'.$_pass.' '.$_db.' > test.sql';
- usunąłem przestrzeń pomiędzy -P i przejście. Wygląda to tak:
-pMYPASSWORD
- Zastąpiony
"
z'
Myślę, że jeśli używasz Linuksa opartą na serwer WWW, nie trzeba podać ścieżkę do mysqldump.
Pozdrawiam! :-)
Myślę, że powinieneś usunąć spację między -p a hasłem. –
Nadal dostaję pusty plik. –
Czy próbowałeś wywołać echo polecenia (aby upewnić się, że wszystkie zmienne zostały przekazane zgodnie z oczekiwaniami) lub przetestować je ręcznie za pomocą prawego wejścia? – Fluffeh