Utilitário de backup MySQL: mysqldump

Backup MySQL

Resumo : neste tutorial você aprenderá como utilizar a mysqldumpferramenta 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 mysqldumpferramenta 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 mysqldumppara 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 mysqldumpferramenta 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 mysqldumpno /usr/bin/diretório. Você pode usar o whichcomando 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\, onde X.Yestá o número da versão do servidor de banco de dados MySQL.
  • macOS : como nos sistemas Linux, você pode encontrar o diretório mysqldumpat /usr/bin/no macOS.

É uma boa prática incluir o diretório que contém mysqldumpa 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 mysqldumpferramenta:

1) Despejar uma ou mais tabelas

mysqldump -u root -p [options] db_name [tbl_name ...] > output_fileLinguagem de código:  texto simples  ( texto simples )

2) Despejar um ou mais bancos de dados

mysqldump -u root -p [options] --databases db_name ... > output_fileLinguagem de código:  texto simples  ( texto simples )

3) Despejar todos os bancos de dados

mysqldump -u root -p [options] --all-databases > output_fileLinguagem 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=usernameopção:

--user=username

Alternativamente, você pode usar a opção mais curta e concisa -u username:

-u username

Aqui estão algumas mysqldumpopçõ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 DATABASEinstruções que de outra forma seriam incluídas na saída quando a opção --databasesou --all-databasesfor 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 mysqldumpferramenta 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_fileLinguagem 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. Substitua usernamepelo nome de usuário real que você deseja usar.
  • -p: esta opção solicita a senha associada ao usuário MySQL especificado pela -uopção. Depois de inserir o comando, você será solicitado a inserir a senha de forma interativa.
  • -B: Esta opção diz mysqldumppara tratar o próximo argumento como um nome de banco de dados, em vez de uma lista de tabelas. No seu comando, db_nameestá 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ída mysqldumppara um arquivo especificado por path_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 classicmodelsno arquivo D:\backup\classicmodels.sql:

mysqldump -u root -p -B classicmodels > D:\backup\classicmodels.sqlLinguagem 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 classicmodelsbanco de dados no arquivoD:\backup\classicmodels.sql

Se quiser colocar a senha no comando, você pode usar a --passwordopção de formato longo:

mysqldump -u root --password=Abcd1234 -B classicmodels > D:\backup\classicmodels.sqlLinguagem 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 --databaseopção:

mysqldump -u username -p -B <dbname1>[,<dbname2>, ...] > path_to_backup_fileLinguagem 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 classicmodelse world:

mysqldump -u root -p --databases classicmodels world > D:\backup\databases.sqlLinguagem 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_fileLinguagem 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.sqlLinguagem 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_fileLinguagem de código:  texto simples  ( texto simples )

Por exemplo, para fazer um backup da employeestabela do classicmodelsbanco de dados, use o seguinte comando:

mysqldump -u root -p classicmodels employees > d:\backup\employees.sqlLinguagem 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 -dopção:

mysqldump -u username -p -d db_name > path_to_backup_fileLinguagem 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 INSERTinstruçõ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.sqlLinguagem 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 -topção:

mysqldump -u username -p -t db_name > path_to_backup_fileLinguagem 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 TABLEdeclarações.

O seguinte comando faz um backup dos dados do banco de dados classicmodels:

mysqldump -u root -p -t classicmodels > d:\backup\classicmodels.sqlLinguagem de código:  texto simples  ( texto simples )

Resumo

  • Use o mysqldumpprograma utilitário para criar backups de bancos de dados no MySQL Server.

Deixe um comentário

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