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");
}
?>