Resumo : neste tutorial você aprenderá como fazer backup de todos os bancos de dados em um servidor MySQL usando o mysqldump
programa e restaurá-los usando o mysql
programa.
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 -p
Linguagem 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
, testdb2
e 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:
exit
Linguagem 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.sql
Linguagem 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
root
usuário). - –all-databases: Esta opção diz
mysqldump
para 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 domysqldump
comando 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_database
arquivo .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 -p
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Segundo, elimine os bancos de dados testdb1
e 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:
exit
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Suponha que você queira restaurar testdb1
e testdb2
a 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 mysql
programa para restaurar todos os bancos de dados do backup criado pelo mysqldump
programa:
mysql -h localhost -u root -p < D:\backup\all_databases.sql
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Terceiro, conecte-se ao servidor MySQL:
mysql -h localhost -u root -p
Linguagem 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 testdb1
e testdb2
foram restaurados com sucesso.
Resumo
- Use a opção
mysqldump
com--all-databases
para despejar todos os bancos de dados em um servidor MySQL em um arquivo. - Use o
mysql
programa para restaurar todos os bancos de dados a partir de um arquivo de backup criado pelomysqldump
programa.