Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Exportar banco de dados MySQL ou MariaDB


Fazer backup de banco de dados regularmente é uma das etapas cruciais depois de tornar o projeto ativo. A frequência de backup pode ser uma vez por dia ou por semana. O backup diário é preferencial para os aplicativos em que as alterações do banco de dados são mais frequentes. No caso de bancos de dados de alta disponibilidade, a configuração de cluster apropriada deve ser considerada em vez do dimensionamento vertical. Este tutorial explica o uso do mysqldump comando para fazer o backup do banco de dados. O mesmo comando pode ser automatizado para fazer backups agendados.



Observações :Este tutorial cobre apenas as opções mais comuns usadas com o mysqldump comando. Você também pode consultar a documentação oficial para explorar todas as opções possíveis. Os mesmos comandos podem ser usados ​​para fazer o backup dos servidores de banco de dados MySQL e MariaDB.


Backup local




Backup - Esta seção explica como fazer backup local em um arquivo exportando bancos de dados únicos ou múltiplos.



Permissões - mysqldump requer os privilégios listados abaixo para exportar o banco de dados. Privilégios apropriados devem ser atribuídos à conta de usuário usada para exportar o banco de dados.
  • SELECT - para despejar tabelas
  • MOSTRAR VISUALIZAÇÃO - para despejar visualizações
  • TRIGGER - para despejar acionadores
  • BLOQUEAR TABELAS - caso a opção --single-transaction não seja usada



Comando - Abaixo mencionado é o uso de mysqldump comando para fazer backup local para sistemas baseados em Windows e Linux, incluindo Ubuntu. Os pontos triplos significam que vários valores podem ser fornecidos.


# Regular command - Usage - Windows, Linux
mysqldump [options] db_name [tbl_name ...] > <file path>
mysqldump [options] --databases db_name ... > <file path>
mysqldump [options] --all-databases > <file path>



Os exemplos para usar o comando regular são os mencionados abaixo. Estes comandos de exemplo estão usando o usuário enterprise fazer backups do banco de dados corporativo . Não há necessidade de especificar usuário e senha caso a conta de usuário esteja usando auth_socket algoritmo para fazer login no servidor MySQL. O usuário do sistema pode acessar diretamente o banco de dados. Você pode consultar Como usar a senha nativa com o MySQL 5.7 e Como instalar o MySQL 8 no Ubuntu para saber mais sobre algoritmos de senha.



Observações :Não há necessidade de usar a opção -p, caso nenhuma senha seja atribuída ao usuário.



Abaixo mencionados são os exemplos para fazer backup de um único banco de dados com nome de usuário, host e porta. A senha não deve ser fornecida com esses comandos para fins de segurança. Você pode especificar a senha para mysqldump no arquivo de configuração que é considerado uma opção segura para cron empregos. Outra opção é usar o comando cat para usar uma senha criptografada (semelhante a como o Plesk está usando), conforme mostrado nos exemplos. O sistema solicitará a senha caso ela não seja fornecida no comando. Esses comandos podem ser usados ​​para exportar todo o banco de dados ou uma ou várias tabelas.


# All tables - with username, without password - prompts for password
mysqldump -u enterprise -p enterprise > enterprise.sql

# All tables - with username, with password - insecure
mysqldump -u enterprise -p'mypwd' enterprise > enterprise.sql

# All tables - with username, with password - Plesk way
mysqldump -u enterprise -p`cat /etc/psa/.psa.shadow` dbname > dbname.sql

# All tables - with host, with port, with username, without password - prompts for password
mysqldump -h localhost -p 3306 -u enterprise -p enterprise > enterprise.sql

# Single table(user) - with username, without password - prompts for password
mysqldump -u enterprise -p enterprise [user] > enterprise.sql

# Multiple tables(user, profile) - with username, without password - prompts for password
mysqldump -u enterprise -p enterprise user profile > enterprise.sql



Abaixo mencionados são os exemplos para fazer backup de vários bancos de dados com nome de usuário, host e porta.


# Multiple databases - with username, without password - prompts for password
mysqldump -u enterprise -p --databases enterprise vblog mshop > mydbs.sql

# Multiple databases - with username, with password
mysqldump -u enterprise -p'mypwd' --databases enterprise vblog mshop > mydbs.sql



Abaixo mencionado é o exemplo para fazer backup de todos os bancos de dados com nome de usuário, host e porta.


# All databases - with username, without password - prompts for password
mysqldump -u enterprise -p --all-databases > mydbs.sql

# All databases - with username, with password
mysqldump -u enterprise -p'mypwd' --all-databases > mydbs.sql



Os usuários do PowerShell no Windows precisarão de um comando diferente, conforme mencionado abaixo.


# PowerShell on Windows
shell> mysqldump [options] db_name [tbl_name ...] --result-file=<file path>
shell> mysqldump [options] --databases db_name ... --result-file=<file path>
shell> mysqldump [options] --all-databases --result-file=<file path>

# Example
shell> mysqldump -u enterprise -p enterprise --result-file=mydump.sql



Os comandos mencionados acima exportarão o banco de dados e as tabelas selecionados para o local do arquivo especificado no comando.


Backup de banco de dados




Esta seção explica como fazer o backup do banco de dados para outro banco de dados usado para fins de backup usando os Shell Pipes. Podemos exportar o banco de dados para o arquivo local e usar esse arquivo para importar para outro banco de dados ou exportar diretamente para outro banco de dados usando shell pipes.



O comando abaixo mencionado pode ser usado para exportar o banco de dados diretamente para outro banco de dados. Além disso, certifique-se de ter acesso a ambos os servidores antes de executar o comando.


# Export database to another database - Same server
mysqldump -u enterprise -p enterprise | mysql enterprise_backup

# Export database to another database - Different server
mysqldump -u enterprise -p enterprise | mysql -h host.example.com -p 3306 enterprise



É assim que podemos exportar ou fazer backup de um banco de dados.