Se você está armazenando qualquer coisa em bancos de dados MySQL que você não quer perder, é muito importante fazer backups regulares de seus dados afim de evitar perda de dados. Este tutorial tem como objetivo mostrar como você pode fazer o backup e compactá-lo – bem como restaurá-lo – assim fica mais fácil movê-lo para um outro servidor.

Como fazer o backup do MySql

Como fazer backup de um único banco de dados:

Este exemplo tem um backup do banco de dados teste e gera a saída para o arquivo teste.sql

# mysqldump -u root -pSENHA teste > teste.sql

# mysqldump -u root -p[senha_de_root] [nome_do_banco] > nome_do_arquivo.sql

Como fazer backup de vários bancos de dados:

Por exemplo, se você quiser ter backup dos banco de dados producao e teste, executar o mysqldump como mostrado abaixo:

# mysqldump -u root -pSENHA --databases producao teste > producao_teste.sql

Você pode verificar se o arquivo gerado contém os dois bancos de dados utilizando o comando a seguir

# grep -i "Current database:" /tmp/producao_teste.sql
-- Current Database: `producao`
-- Current Database: `teste`

Como fazer backup de todos bancos de dados:

O exemplo a seguir faz uma cópia de segurança de todos os banco de dados da instância do MySQL.

# mysqldump -u root -pSENHA --all-databases > /tmp/todos_bancos.sql

Como fazer backup de uma tabela específica do banco de dados:

Neste exemplo, será feito o backup apenas da tabela clientes da base de dados teste.

# mysqldump -u root -pSENHA teste clientes > /tmp/teste_clientes.sql

Como exportar um banco de dados e compactar com Gzip

No exemplo a seguir, vamos fazer o backup do banco teste e em seguida redirecionar a saída para o gzip que vai compactá-lo para o arquivo teste.sql.gz

# mysqldump -u root -pSENHA teste | gzip > teste.sql.gz

Como restaurar o backup do MySql

Restaurar o banco de dados

Neste exemplo, para restaurar o banco teste, é necessário executar mysql com < como mostrado abaixo. Quando você estiver restaurando o backup em uma outra instância do banco de dados, certifique-se de criar o banco de dados teste – em nosso exemplo – antes de poder executar a restauração.

Para criar o banco você deve executar os seguintes comandos:

# mysql -u root -pSENHA

mysql> create database teste;  
Query OK, 1 row affected (0.06 sec)  

E, para efetuar a restauração

# mysql -u root -pSENHA teste < /tmp/teste.sql

# mysql -u root -p[root_password] [database_name] < arquivodebackup.sql

Como importar um banco de dados e compactado com Gzip

No exemplo a seguir, vamos descompactar o arquivo teste.sql.gz. e, redirecionar a saída para o mysql, definindo que a restauração do arquivo deve ser feita no banco teste.

gunzip < teste.sql.gz | mysql -u user -pSenha teste