CCV_Blackout
02-07-2009, 02:09 AM
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 cria a tabela e/ou popular a tabela.
A sintaxe para utilização do mysqldump é:
PROMPT>> mysqldump [OPÇÕES] banco_de_dados [tabelas]
OR mysqldump [OPÇÕES] --databases [OPÇÕES] BD1 [BD2 BD3...]
OR 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
<?php
/************************************************** ****************
autor : eliveltom
email : [email protected]
data : 17/12/2003
descricao: criar arquivo de backup do banco mysql
************************************************** ***************/
$host = "";//host do banco
$user = "";//usuario 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 eu normalmente crio um diretorio de backup dentro do /user
Mas se você já tem um diretório de backup apenas edite o path.
Aqui eu usei um exemplo onde utilizo o sql SHOW TABLES isso para criar um arquivo nomedobanco.sql para cada banco, mas, você, claro pode otimizar de sua maneira
Salve este arquivo com backup_mysql.php agora é só colocá-lo no cron para que
a execução seja automatizada.
Bom é isso espero que possa ter servido para alguém.
A sintaxe para utilização do mysqldump é:
PROMPT>> mysqldump [OPÇÕES] banco_de_dados [tabelas]
OR mysqldump [OPÇÕES] --databases [OPÇÕES] BD1 [BD2 BD3...]
OR 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
<?php
/************************************************** ****************
autor : eliveltom
email : [email protected]
data : 17/12/2003
descricao: criar arquivo de backup do banco mysql
************************************************** ***************/
$host = "";//host do banco
$user = "";//usuario 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 eu normalmente crio um diretorio de backup dentro do /user
Mas se você já tem um diretório de backup apenas edite o path.
Aqui eu usei um exemplo onde utilizo o sql SHOW TABLES isso para criar um arquivo nomedobanco.sql para cada banco, mas, você, claro pode otimizar de sua maneira
Salve este arquivo com backup_mysql.php agora é só colocá-lo no cron para que
a execução seja automatizada.
Bom é isso espero que possa ter servido para alguém.