Já aprendemos vários recursos do MySQL, agora vamos ensinar como você faz o backup do banco de dados pelo PHP e também pelo PhpMyAdmin.
Segue os links dos tutoriais relacionados ao MySQL:
1 – MySQL – Básico (Criação e utilização no PHP)
2 – MySQL – Intermediário (INNER JOIN, LEFT JOIN, RIGHT JOIN, GROUP BY, HAVING, UNION e Aliases)
3 – MySQL – Avançado (Relacionamentos de tabelas)
4 – MySQL – Backup (Realizar backup do banco de dados)
5 – MySQL – Segurança (Métodos de manter a segurança de informação)
PHP
Em muitos casos, você desenvolveu um sistema para um cliente que precisa de um backup do banco de dados, pode incluir esse script abaixo para gerar o arquivo sql de todo o banco de dados, inclusive com os relacionamentos criados.
<?php
//salva os dados do banco de dados
$servidor = "localhost";
$usuario = "usuario_do_banco";
$senha = "senha_do_banco";
$banco = "nome_do_banco";
//cria uma pasta de backup para colocar o arquivo sql que vamos gerar
$pasta = "backup/";
$arquivo_banco = $banco.".sql";
if(!is_dir($pasta))
mkdir($pasta, 0777);
//faz a conexão com o banco de dados
mysql_connect($servidor,$usuario,$senha) or die(mysql_error());
mysql_select_db($banco) or die(mysql_error());
//cria o arquivo
$arquivo = fopen($pasta.$arquivo_banco,"w");
//lista as tabelas do banco de dados
$selecao_banco = mysql_list_tables($banco) or die(mysql_error());
for($a=0; $a<mysql_numrows($selecao_banco); $a++){
$item_banco = mysql_fetch_row($selecao_banco);
$tabela = $item_banco[0];
//mostra a estrutura da tabela
$selecao_tabela = mysql_query("SHOW CREATE TABLE $tabela");
for($b=0; $b<mysql_numrows($selecao_tabela); $b++){
$item_tabela = mysql_fetch_row($selecao_tabela);
//escreve no arquivo gerado o cabeçalho em forma de comentário para a estrutura da tabela e também o dump dos dados.
fwrite($arquivo,"\n--\n-- Estrutura para tabela : $tabela\n--\n\n");
fwrite($arquivo,"$item_tabela[1] ;\n\n--\n-- Fazendo dump de dados para tabela : $tabela\n--\n\n");
fwrite($arquivo,"INSERT INTO `$tabela` (");
$colunas = '';
//seleciona as colunas da tabela
$selecao_coluna = mysql_query("SHOW COLUMNS FROM $tabela");
for($c=0; $c<mysql_numrows($selecao_coluna); $c++){
$coluna = mysql_fetch_row($selecao_coluna);
$colunas .= "`$coluna[0]`,";
}
$colunas = ereg_replace(",$", "", $colunas);
//escreve no arquivo gerado as colunas da tabela para fazer o dump dos dados
fwrite($arquivo,$colunas.") VALUES\n");
$sql = "";
//nesse loop abaixo esta inserindo em uma variavel chamada sql, todos os registros das tabelas, separadas por tabela e colunas.
$selecao_campo = mysql_query("SELECT * FROM $tabela");
for($d=0; $d<mysql_numrows($selecao_campo); $d++){
$item_campo = mysql_fetch_row($selecao_campo);
$sql .= "(";
for($e=0; $e<mysql_num_fields($selecao_campo);$e++){
if(!isset($item_campo[$e]))
$sql .= "'',";
else if($item_campo[$e] != ""){
if(is_numeric($item_campo[$e]))
$sql .= "".$item_campo[$e].",";
else
$sql .= "'".addslashes($item_campo[$e])."',";
}else
$sql .= "'',";
}
$sql = ereg_replace(",$", "", $sql);
$sql .= "),\n";
}
$sql = ereg_replace(",\n$", ";\n", $sql);
fwrite($arquivo,$sql);
}
}
//fecha o arquivo
fclose($arquivo);
//nessa parte estamos fazendo o navegador interpretar o iniciar o download do arquivo sql gerado no backup
header("Content-Type: sql");
header("Content-Length: ".filesize($pasta.$arquivo_banco));
header("Content-Disposition: attachment; filename=".basename($pasta.$arquivo_banco));
readfile($pasta.$arquivo_banco);
exit;
?>
PhpMyAdmin
Agora se você tem acesso ao PhpMyAdmin, pode fazer o backup da seguinte forma.
Primeiro você seleciona o banco de dados que deseja realizar o backup e então clique no menu ‘exportar’.

Na próxima tela, aparece o formato que você quer exportar, no nosso caso SQL e clique no botão ‘executar’.

Lembrando que se o banco de dados for muito grande o PhpMyAdmin não é muito recomendável. Sendo assim, utilize o processo por linha de comando, segue abaixo os passos.
Linha de comando
Pelo seu Windows, se você utilizar um programa como o VertrigoServ que foi ensinado nesse link.
Abra o Prompt de Comando e entre na pasta ‘bin’, dentro da pasta ‘mysql’ que fica na raiz do VertrigoServ:
cd vertrigoserv/mysql/bin
Assim você vai acessar a pasta ‘bin’, onde se encontra o mysqldumb.exe, que vamos executar para fazer o backup do banco de dados.
Para fazer o backup de todos os bancos de dados:
mysqldump -u root -p --all-databases > c:/backups/nome_arquivo.sql
Para fazer o backup de algum banco de dados especifico:
mysqldump -u root -p nome_do_banco > c:/backups/nome_arquivo.sql
Para fazer a importação de um banco de dados:
mysql -u root -p nome_do_banco < c:/backups/nome_arquivo_backup.sql
Após cada comando o sistema pede para você inserir a senha do banco de dados, assim ele executa a ação.
No Linux o processo é mais simples, apenas através do terminal. Não precisa acessar nenhuma pasta, pode inserir os comandos assim que abrir.
Pronto, você tem três formas de realizar o backup do banco de dados, é muito importante para você migrar de servidores e realizar backup preventivo.
Espero que esse tutorial tenha sido útil. Continue postando seus comentários.
Abraço.
backup, Banco de dados, dump, featured, MySQL, mysqldump, php, phpmyadmin