1.- Tienes que probar ese comando en linea de comandos y ver si te funciona
Yo dejaria el codigo así
Código PHP:
<?
//Ponemos fecha para el nombre de la backup
$fechas = date("d/m/y");
// Nombre del archivo de con el cual queremos que se guarde la base de datos
$filename = $fechas.".sql";
$usuario="..."; // Usuario de la base de datos, un ejemplo podria ser 'root'
$passwd="..."; // Contraseña asignada al usuario
$bd="..."; // Nombre de la Base de Datos a exportar
// Funciones para exportar la base de datos
$executa = "/mysql/bin/mysqldump -u $usuario --password=$passwd --opt $bd";
system($executa, $resultado);
// Comprobar si se a realizado bien, si no es asi, mostrará un mensaje de error
if ($resultado) { echo "<H1>Error ejecutando comando: $executa</H1>\n"; }
// Cabezeras para forzar al navegador a guardar el archivo
// Agrege un par de lineas a prueba de errores comunes
header("Pragma: no-cache");
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Content-Transfer-Encoding: binary");
header("Content-type: application/force-download");
header("Content-Disposition: attachment; filename=$filename");
header("Content-Length: ".strlen($resultado));
set_time_limit(0);
//quizas solo te falta esta linea
echo $resultado;
?>