Oggi mi sono trovato lo stesso problema e h trovato la soluzione e coretto un po lo scrpt precedente:

Codice PHP:

<?php

set_time_limit
(0); //Se i db sono grossi eviti il timeout dello script, fallo anche sulla config di apache
mysql_connect("localhost""root""");
$sql "SHOW DATABASES;";
$rst mysql_query($sql);
while (
$r mysql_fetch_array($rst)) {
    
$db $r[0];
    
exec("[perscorso]/mysqldump -u[utente] -p [password] $db > /catella_di_esportazione/$db.sql");
}

?>

Quello appena postato fa la copia di tutte le tabelle di un database e crea un file.sql per ognuna.

ora vediamo per creare un unico file .sql con il backup completo di tutte le tabelle

Codice PHP:

<?php
    exec
("[perscorso]/mysqldump -u[utente] -p [password]  --all-database > server.sql");
?>
Ed ora vediamo come fare il backup di diversi database


Su piu file ... (uno per tabella )
Codice PHP:
<?php

set_time_limit
(0); 
mysql_connect("localhost""root""psw");
$sql "SHOW DATABASES;";
$rst mysql_query($sql);
while (
$r mysql_fetch_array($rst)) 
{
    
$db $r[0];
    
exec("[perscorso]/mysqldump -u[utente] -p [password] $db > /catella_di_esportazione/$db.sql");
}

mysql_connect("localhost2""root2""psw2");
$sql "SHOW DATABASES;";
$rst mysql_query($sql);
while (
$r mysql_fetch_array($rst)) 
{
    
$db $r[0];
    
exec("[perscorso]/mysqldump -u[utente] -p [password] $db > /catella_di_esportazione/$db.sql");
}

?>
ed ora su un unico file ogni database

Codice PHP:
<?php

set_time_limit
(0); 
mysql_connect("localhost""root""psw");
$sql "SHOW DATABASES;";
$rst mysql_query($sql);
while (
$r mysql_fetch_array($rst)) 
{
    
$db $r[0];
   
exec("[perscorso]/mysqldump -u[utente] -p [password]  --all-database > server.sql");
}

mysql_connect("localhost2""root2""psw2");
$sql "SHOW DATABASES;";
$rst mysql_query($sql);
while (
$r mysql_fetch_array($rst)) 
{
    
$db2 $r[0];
    
exec("[perscorso]/mysqldump -u[utente2] -p [password2]  --all-database > server2.sql");
}

?>