Tempo de leitura: 3 minutos
Perder um banco de dados sem backup é um dos piores cenários pra quem administra um site ou aplicação. O MySQL e o MariaDB trazem uma ferramenta de linha de comando simples e confiável pra isso: o mysqldump. Neste guia você vai ver como fazer backup, restaurar e automatizar essa rotina na sua VPS Linux.
Se você ainda está escolhendo onde hospedar o banco, vale conhecer o Cloud VPS Brasil da Rubfy: SSD NVMe e Intel Xeon Gold, ideal pra bancos de dados que precisam de leitura e escrita rápidas.
Por que usar o mysqldump
O mysqldump exporta o banco inteiro (ou tabelas específicas) num arquivo .sql com todos os comandos necessários pra recriar a estrutura e os dados. É a ferramenta padrão, vem junto com a instalação do MySQL/MariaDB e funciona igual nos dois.
Fazendo backup de um banco
O comando básico pede o usuário, pede a senha de forma interativa e salva a saída num arquivo:
mysqldump -u usuario -p nome_do_banco > backup.sql
Pra comprimir o arquivo direto (importante em bancos grandes, economiza bastante espaço em disco):
mysqldump -u usuario -p nome_do_banco | gzip > backup-$(date +%F).sql.gz
Pra fazer backup de TODOS os bancos do servidor de uma vez:
mysqldump -u root -p --all-databases | gzip > backup-completo-$(date +%F).sql.gz
Opções que fazem diferença
--single-transaction: essencial em bancos InnoDB em produção, faz o backup numa transação consistente sem travar as tabelas.--routines: inclui procedures e functions armazenadas, que o backup padrão não pega.--triggers: inclui os triggers das tabelas.--no-tablespaces: evita erro de permissão em alguns ambientes gerenciados.
Um comando de produção mais completo fica assim:
mysqldump -u usuario -p --single-transaction --routines --triggers nome_do_banco | gzip > backup.sql.gz
Restaurando um backup
Pra restaurar, primeiro crie o banco vazio (se ele ainda não existir) e depois importe o arquivo:
mysql -u usuario -p -e "CREATE DATABASE nome_do_banco;"
mysql -u usuario -p nome_do_banco < backup.sql
Se o arquivo estiver comprimido, descompacte na hora com um pipe, sem precisar salvar o .sql descompactado no disco:
gunzip < backup.sql.gz | mysql -u usuario -p nome_do_banco
Automatizando com cron
Backup manual só funciona até você esquecer de rodar. O ideal é agendar no crontab. Veja o passo a passo completo em como agendar tarefas no Linux com crontab. Um exemplo de rotina diária às 2h da manhã, guardando os backups numa pasta separada:
0 2 * * * mysqldump -u usuario -pSUASENHA --single-transaction nome_do_banco | gzip > /backup/mysql/banco-$(date +\%F).sql.gz
Guardar a senha direto no crontab não é o ideal por segurança. A alternativa mais limpa é criar um arquivo ~/.my.cnf com as credenciais e permissão restrita (chmod 600), aí o mysqldump lê sozinho sem precisar da senha na linha de comando.
Boas práticas
- Teste a restauração de vez em quando. Um backup que nunca foi restaurado é uma suposição, não uma garantia.
- Mantenha os backups em outro disco ou servidor, não só na mesma VPS que está sendo protegida.
- Rotacione os arquivos antigos (mantenha os últimos 7 ou 30 dias, por exemplo) pra não lotar o disco.
Conclusão
O mysqldump resolve backup e restore de forma simples e sem depender de ferramentas externas. Combinado com compressão, uma rotina agendada no cron e uma cópia guardada fora da VPS, você tem uma proteção real contra perda de dados.
Rode isso numa VPS de verdade
Um backup rápido depende de disco rápido. O Cloud VPS Brasil da Rubfy roda com SSD NVMe, Intel Xeon Gold, tráfego ilimitado e suporte humano de verdade via WhatsApp e ticket, com preço fixo em reais, sem depender do dólar.