Como gerar um backup compactado no MySQL?

O MySQL fornece uma ferramenta própria para realizar backups, que é o mysqldump. Indicamos utilizar esta ferramenta para fazer o backup de bancos de dados maiores que 100 MB e com até 15/20 GB. Acima disso, a probabilidade de você ter problemas para restaurar um backup e o longo tempo que será necessário para criar o backup, tornam o recurso inviável.

Como o mysqldump funciona? Ele cria comandos SQL da estrutura e dados das tabelas e insere-os em um arquivo indicado.

Segue como fazer o backup de um banco de dados:

mysqldump -u USUARIO_DO_BANCO -p NOME_DO_BANCO > backup.sql

Ao executar o comando acima, primeiro será solicitada a senha do seu banco de dados. Após isso, quando o comando for finalizado, será gerado um arquivo chamado backup.sql na pasta onde o comando foi executado (geralmente a raiz da hospedagem).

Para gerar um backup compactado, utilize o comando abaixo:

mysqldump -u USUARIO_DO_BANCO -p NOME_DO_BANCO | gzip > backup.sql.gz

O comando acima também vai gerar um backup do seu banco de dados, mas ele será compactado em tempo real usando gzip e será salvo no arquivo backup.sql.gz.

E como eu faço para restaurar um backup?

mysql -u USUARIO_DO_BANCO -p NOME_DO_BANCO < backup.sql

Ou quando se tratar de um backup compactado com gzip, o comando será este abaixo:

gunzip < backup.sql.gz | mysql -u  USUARIO_DO_BANCO -p NOME_DO_BANCO

Mais detalhes sobre o mysqldump podem ser encontrados no manual online do MySQL.