Como fazer backup e restaurar todos os bancos de dados no MySQL

Resumo : neste tutorial você aprenderá como fazer backup de todos os bancos de dados em um servidor MySQL usando o mysqldumpprograma e restaurá-los usando o mysqlprograma.

Criando bancos de dados de amostra

Primeiro, abra o Prompt de Comando no Windows ou Terminal em sistemas do tipo Unix e conecte-se ao servidor MySQL:

mysql -u root -pLinguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

A seguir, mostre todos os bancos de dados :

show databases;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Saída:

+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
4 rows in set (0.00 sec)Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

O comando retorna quatro bancos de dados do sistema.

Em seguida, crie três bancos de dados chamados testdb1, testdb2e testdb3:

CREATE DATABASE testdb1;
CREATE DATABASE testdb2;
CREATE DATABASE testdb3;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Depois disso, mostre todos os bancos de dados novamente:

show databases;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Saída:

+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
| testdb1            |
| testdb2            |
| testdb3            |
+--------------------+
7 rows in set (0.00 sec)Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Finalmente, saia do programa mysql:

exitLinguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Fazendo backup de todos os bancos de dados

Primeiro, abra o prompt de comando no Windows ou o Terminal em sistemas do tipo Unix.

Segundo, use o seguinte comando para fazer backup de todos os bancos de dados no servidor MySQL:

mysqldump -h localhost -u root -p --all-databases > D:\backup\all_databases.sqlLinguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Vamos analisar o comando:

  • mysqldump: Este é o utilitário de linha de comando para MySQL que permite despejar todos os bancos de dados em um arquivo.
  • -h localhost: esta opção especifica o nome do host onde o servidor MySQL está sendo executado. Neste caso, está definido como “localhost”, indicando que o servidor MySQL está na mesma máquina em que o comando está sendo executado.
  • -u root: Esta opção especifica o usuário MySQL a ser usado para a conexão. Neste caso, está definido como “root”, que é uma conta de superusuário padrão comum no MySQL.
  • -p: Esta opção solicita ao usuário a senha do MySQL. Após inserir o comando, você será solicitado a inserir a senha do usuário especificado (neste caso, o rootusuário).
  • –all-databases: Esta opção diz mysqldumppara despejar todos os bancos de dados no servidor MySQL, não apenas um específico. Inclui a estrutura e os dados de todos os bancos de dados, incluindo os bancos de dados do sistema.
  • > D:\backup\ all_databases.sql: Esta parte do comando usa o símbolo de redirecionamento de saída ( >) para enviar a saída do mysqldumpcomando para um arquivo. Neste caso, o arquivo é especificado como . O arquivo conterá as instruções SQL necessárias para recriar todos os bancos de dados e seus dados.D:\backup\all_databases.sql

Terceiro, examine o all_databasearquivo .sql no diretório D:\backup.

Removendo acidentalmente um banco de dados

Primeiro, abra o Prompt de Comando no Windows ou Terminal em sistemas do tipo Unix e conecte-se ao servidor MySQL:

mysql -u root -pLinguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Segundo, elimine os bancos de dados testdb1e testdb2:

drop database testdb1;
drop database testdb2;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Terceiro, mostre todos os bancos de dados:

 show databases;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Saída:

+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
| testdb3            |
+--------------------+
5 rows in set (0.00 sec)Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Finalmente, saia do programa mysql:

exitLinguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Suponha que você queira restaurar testdb1e testdb2a partir do backup criado pelo programa mysqldump.

Restaurando todos os bancos de dados

Primeiro, abra o prompt de comando no Windows ou o Terminal em sistemas do tipo Unix.

Segundo, use o mysqlprograma para restaurar todos os bancos de dados do backup criado pelo mysqldumpprograma:

mysql -h localhost -u root -p < D:\backup\all_databases.sqlLinguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Terceiro, conecte-se ao servidor MySQL:

mysql -h localhost -u root -pLinguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Por fim, mostre todos os bancos de dados:

show databases;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Saída:

+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
| testdb1            |
| testdb2            |
| testdb3            |
+--------------------+
7 rows in set (0.00 sec)Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

A saída indica que os bancos de dados testdb1e testdb2foram restaurados com sucesso.

Resumo

  • Use a opção mysqldumpcom --all-databasespara despejar todos os bancos de dados em um servidor MySQL em um arquivo.
  • Use o mysqlprograma para restaurar todos os bancos de dados a partir de um arquivo de backup criado pelo mysqldumpprograma.

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *