Resumo : neste tutorial você aprenderá como utilizar a mysqldump
ferramenta para fazer backup de um ou mais bancos de dados em um Servidor MySQL.
Introdução à ferramenta mysqldump
O mysqldump
é um utilitário de linha de comando no MySQL usado para criar backups de bancos de dados MySQL.
A mysqldump
ferramenta permite despejar a estrutura e/ou dados de um ou mais bancos de dados em um arquivo, que você pode usar para restaurar os bancos de dados posteriormente.
Na prática, você costuma usar o mysqldump
para operações de backup e restauração, migração de banco de dados e transferência de bancos de dados entre servidores.
localização da ferramenta mysqldump
A mysqldump
ferramenta normalmente vem com a instalação do servidor MySQL por padrão. Sua localização depende do seu sistema operacional:
- Linux : em sistemas Linux, incluindo distribuições como Ubuntu, CentOS e outras, você encontra
mysqldump
no/usr/bin/
diretório. Você pode usar owhich
comando para localizá-lo:which mysqldump
- Windows : no Windows, você pode encontrar o mysqldump no diretório
C:\Program Files\MySQL\MySQL Server X.Y\bin\
, ondeX.Y
está o número da versão do servidor de banco de dados MySQL. - macOS : como nos sistemas Linux, você pode encontrar o diretório
mysqldump
at/usr/bin/
no macOS.
É uma boa prática incluir o diretório que contém mysqldump
a variável de ambiente PATH do seu sistema para que você possa invocar o comando de qualquer local no prompt de comando ou terminal.
Sintaxes básicas da ferramenta mysqldump
Existem três sintaxes básicas para usar a mysqldump
ferramenta:
1) Despejar uma ou mais tabelas
mysqldump -u root -p [options] db_name [tbl_name ...] > output_file
Linguagem de código: texto simples ( texto simples )
2) Despejar um ou mais bancos de dados
mysqldump -u root -p [options] --databases db_name ... > output_file
Linguagem de código: texto simples ( texto simples )
3) Despejar todos os bancos de dados
mysqldump -u root -p [options] --all-databases > output_file
Linguagem de código: texto simples ( texto simples )
As opções do mysqldump
A ferramenta mysqldump fornece duas maneiras diferentes de especificar uma opção: formato longo e formato curto.
Por exemplo, se quiser especificar o formato longo para o usuário, você pode usar a --user=username
opção:
--user=username
Alternativamente, você pode usar a opção mais curta e concisa -u username
:
-u username
Aqui estão algumas mysqldump
opções comuns:
Opção | Forma curta | Significado |
---|---|---|
-do utilizador | -você | nome de usuário |
-senha | -p | senha |
–add-drop-banco de dados | N / D | Adicione uma instrução DROP DATABASE antes de cada instrução CREATE DATABASE |
–add-drop-table | N / D | Adicione uma instrução DROP TABLE antes de cada instrução CREATE TABLE . |
–add-drop-trigger | N / D | Adicione uma instrução DROP TRIGGER antes de cada instrução CREATE TRIGGER . |
–adicionar bloqueios | N / D | Coloque cada dump de tabela com instruções LOCK TABLES e UNLOCK TABLES. |
–todos os bancos de dados | -A | Execute um dump do banco de dados para todas as tabelas em todos os bancos de dados. |
–bancos de dados | -B | Descarte um ou mais bancos de dados instruindo o mysqldump a tratar todos os argumentos de nome na linha de comando como nomes de banco de dados. |
–sem dados | -d | Não inclua nenhuma informação de linha da tabela. |
–arquivo de resultado | -r | Direcione a saída para um arquivo especificado. Se o arquivo já existir, a ferramenta irá substituí-lo. |
–rotinas | -R | Inclua rotinas armazenadas (procedimentos e funções) ao despejar os bancos de dados. |
–no-create-db | -n | Suprima as CREATE DATABASE instruções que de outra forma seriam incluídas na saída quando a opção --databases ou --all-databases for fornecida. |
–no-create-info | -t | Não inclua CREATE TABLE instruções para cada tabela descartada. |
Os exemplos da ferramenta mysqldump
Vamos explorar alguns exemplos de uso da mysqldump
ferramenta para criar backups.
1) Criando um backup de um único banco de dados
O comando a seguir cria um backup de um único banco de dados:
mysqldump -u username -p -B db_name > path_to_backup_file
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Nesta sintaxe:
mysqldump
: este é o utilitário de linha de comando para backups de banco de dados MySQL.-u username
: esta opção especifica o usuário MySQL a ser usado para a conexão. Substituausername
pelo nome de usuário real que você deseja usar.-p
: esta opção solicita a senha associada ao usuário MySQL especificado pela-u
opção. Depois de inserir o comando, você será solicitado a inserir a senha de forma interativa.-B
: Esta opção dizmysqldump
para tratar o próximo argumento como um nome de banco de dados, em vez de uma lista de tabelas. No seu comando,db_name
está o nome do banco de dados do qual deseja fazer backup.db_name
: substitua pelo nome do banco de dados MySQL do qual deseja fazer backup.> path_to_backup_file
: esta parte do comando redireciona a saídamysqldump
para um arquivo especificado porpath_to_backup_file
. É aqui que os dados de backup serão armazenados.
Por exemplo, o comando a seguir cria um backup do banco de dados classicmodels
no arquivo D:\backup\classicmodels.sql
:
mysqldump -u root -p -B classicmodels > D:\backup\classicmodels.sql
Linguagem de código: texto simples ( texto simples )
Ele solicitará que você insira uma senha para a conta root. Depois de inserir uma senha válida para a conta root, a ferramenta irá despejar o classicmodels
banco de dados no arquivoD:\backup\classicmodels.sql
Se quiser colocar a senha no comando, você pode usar a --password
opção de formato longo:
mysqldump -u root --password=Abcd1234 -B classicmodels > D:\backup\classicmodels.sql
Linguagem de código: texto simples ( texto simples )
Ele emitirá um aviso:
mysqldump: [Warning] Using a password on the command line interface can be insecure.
Linguagem de código: texto simples ( texto simples )
2) Criando um backup de vários bancos de dados
Para fazer um backup de vários bancos de dados, especifique uma lista de nomes de bancos de dados após a --database
opção:
mysqldump -u username -p -B <dbname1>[,<dbname2>, ...] > path_to_backup_file
Linguagem de código: texto simples ( texto simples )
Nesta sintaxe:
mysqldump
: Este é o utilitário de linha de comando para backup de banco de dados MySQL.-u username
: Esta opção especifica o usuário MySQL a ser usado para a operação. Você substituiria “nome de usuário” pelo nome de usuário real do MySQL.-p
: Esta opção solicita a senha do usuário MySQL. Depois de inserir o comando, você será solicitado a fornecer a senha.-B
: Esta opção é usada para indicar que um ou mais bancos de dados seguirão. É seguido pela lista de bancos de dados que você deseja incluir no backup.<dbname1>[,<dbname2>, ...]
: esta parte especifica o nome do banco de dados ou bancos de dados dos quais você deseja fazer backup. Você pode listar vários bancos de dados separados por vírgulas.> path_to_backup_file
: Esta parte do comando redireciona a saída da operação mysqldump para um arquivo especificado por “path_to_backup_file”.
Por exemplo, o comando a seguir faz um backup dos bancos de dados classicmodels
e world
:
mysqldump -u root -p --databases classicmodels world > D:\backup\databases.sql
Linguagem de código: texto simples ( texto simples )
3) Criando um backup de todos os bancos de dados
Para fazer backup de todos os bancos de dados em um servidor MySQL, você usa a opção -A:
mysqldump -u username -p -A > path_to_backup_file
Linguagem de código: texto simples ( texto simples )
A instrução a seguir faz backup de todos os bancos de dados no servidor MySQL atual:
mysqldump -u root -p -A > D:\backup\all_databases.sql
Linguagem de código: texto simples ( texto simples )
4) Criando um backup de tabelas específicas em um banco de dados
Para fazer backup de uma ou mais tabelas de um banco de dados, use o seguinte comando:
mysqldump -u username -p db_name tbl_name1, tbl_name2,... > path_to_backup_file
Linguagem de código: texto simples ( texto simples )
Por exemplo, para fazer um backup da employees
tabela do classicmodels
banco de dados, use o seguinte comando:
mysqldump -u root -p classicmodels employees > d:\backup\employees.sql
Linguagem de código: texto simples ( texto simples )
5) Criando um backup apenas da estrutura do banco de dados
Para fazer um backup apenas da estrutura do banco de dados, você utiliza a -d
opção:
mysqldump -u username -p -d db_name > path_to_backup_file
Linguagem de código: texto simples ( texto simples )
A instrução gerará um arquivo de despejo que contém a instrução SQL necessária para recriar a estrutura do banco de dados. O arquivo de despejo não contém INSERT
instruções.
Por exemplo, a instrução a seguir faz um backup da estrutura do banco de dados classicmodels
:
mysqldump -u root -p -d classicmodels > d:\backup\classicmodels.sql
Linguagem de código: texto simples ( texto simples )
6) Criando um backup apenas de dados
Para fazer um backup apenas dos dados do banco de dados, você usa a -t
opção:
mysqldump -u username -p -t db_name > path_to_backup_file
Linguagem de código: texto simples ( texto simples )
A instrução gerará um arquivo de despejo que contém as instruções SQL necessárias para bloquear tabelas e inserir dados nas tabelas. Não tem CREATE TABLE
declarações.
O seguinte comando faz um backup dos dados do banco de dados classicmodels
:
mysqldump -u root -p -t classicmodels > d:\backup\classicmodels.sql
Linguagem de código: texto simples ( texto simples )
Resumo
- Use o
mysqldump
programa utilitário para criar backups de bancos de dados no MySQL Server.