O mysqldump é um utilitário para descarregar um banco
de dados ou uma coleção de bancos de dados para backup ou
transferência para outro servidor SQL (não necessariamente um
servidor MySQL) ou ainda apenas um backup em arquivo.
A descarga irá conter instruções SQL para criar a tabela e/ou
popular a tabela.
As sintaxes para utilização do mysqldump são:
mysqldump [OPÇÕES] banco_de_dados [tabelas]
mysqldump [OPÇÕES] --databases [OPÇÕES] BD1 [BD2 BD3...]
mysqldump [OPÇÕES] --all-databases [OPÇÕES]
Se você não fornecer nenhuma tabela ou utilizar o
--databases ou --all-databases, todo(s) o(s) banco(s)
de dados será(ão) descarregado(s).
Para melhores informações, você ainda pode obter uma lista das
opções que sua versão do mysqldump suporta executando:
$ mysqldump --help
Agora veja como seria um exemplo em PHP para executar o backup de
todas as suas DATABASES em um arquivo separado para cada uma delas:
<?php
/**************************************************
autor : leo genilhu
email : [email protected]
data : 17/12/2003
descrição: criar arquivo de backup do banco mysql
**************************************************/
$host = "";
// host do banco
$user = "";
// usuário do banco
$senha = "";
// senha do banco
$dbc = mysql_connect($host, $user, $senha);
$m = mysql_select_db("test", $dbc);
$sql = "SHOW DATABASES";
$sts = mysql_query($sql,$dbc) or die (mysql_error());
$data = date("d-m-y");
while($row = mysql_fetch_array($sts)){
$nome = $row[0];
$NARQUIVO = $nome."-".$data;
$resp = `
mysqldump --host=$host --user=$user --password=$senha --databases $nome > /home/user/public_html/$NARQUIVO.sql` ;
}
$arquivo = "mysql_".$data;
// criar os pacotinhos com todos os arquivos.sql
$resp = `tar -cvzf /usr/backup/$arquivo.tar.gz /home/user/public_html/*.sql`;
$resp = `rm *.sql`;
?>
OBS: lembre sempre que o usuário citado no código deve ter
"ALL PRIVILEGES" para que o script funcione normalmente.
Para criar os pacotinhos, normalmente crio um diretório de
backup dentro do
/user, mas se você já tem um diretório
de backup, apenas edite o path.
Aqui mostrei um exemplo onde utilizo o comando SQL "SHOW DATABASES",
para que seja criado um arquivo
nomedobanco.sql para cada
banco, mas é claro, você pode otimizar de sua maneira.
Salve este arquivo como
backup_mysql.php. Agora e só
colocá-lo no
cron para que sua execução seja automatizada.
Bom, é isso! Espero que possa ter servido para alguém.
Qualquer dúvida e só postar que estaremos respondendo.
[email protected]
Um abraço!