Tôi muốn tạo bản sao lưu từ cơ sở dữ liệu, nhưng tôi chỉ nhận được một tệp trống.php exec() - mysqldump tạo một tệp trống
include('config.php');
$command = "mysqldump --opt -h ".$_host." -u ".$_user." -p ".$_pass." ".$_db." > test.sql";
exec($command);
echo "<br />".$command;
test.sql được tạo nơi tệp .php được đặt.
Edit:
Lưu ý! Tôi đang sử dụng XAMPP WINDOWS!
Giải pháp:
Bởi vì tôi đang sử dụng Windows Web Server (XAMPP), tôi cần phải chỉ định đường dẫn:
$command = 'd:\xampp\mysql\bin\mysqldump --opt -u '.$_user.' -p'.$_pass.' '.$_db.' > test.sql';
- tôi loại bỏ các khoảng trống giữa -p và vượt qua. Dường như:
-pMYPASSWORD
- thay thế
"
với'
Tôi nghĩ rằng nếu bạn đang sử dụng một máy chủ web dựa trên Linux, bạn không cần phải chỉ định đường dẫn cho mysqldump.
Chúc mừng! :-)
Tôi nghĩ bạn nên xóa khoảng cách giữa -p và mật khẩu. –
Vẫn nhận được tệp trống. –
Bạn đã cố gắng echo-ing ra lệnh (để đảm bảo tất cả các biến được thông qua như mong đợi) hoặc thử nghiệm nó bằng tay với đầu vào bên phải? – Fluffeh