Importar e exportar bancos de dados no MySQL usando a linha de comando
Gerenciar backups e migrações de bancos de dados é uma tarefa essencial para qualquer administrador de banco de dados MySQL. Usando a linha de comando, você pode facilmente exportar bancos de dados para arquivos de backup ou importá-los para um novo ambiente. Este guia aborda como importar e exportar bancos de dados no MySQL usando a linha de comando.
Pré-requisitos
Antes de começar, certifique-se de que:
- O MySQL está instalado e em execução em seu servidor ou máquina local.
- Você tem acesso a um terminal ou linha de comando.
- Você tem as credenciais necessárias do MySQL, incluindo o nome de usuário e a senha.
Exportação de bancos de dados com o mysqldump
O utilitário mysqldump é a ferramenta padrão para exportar bancos de dados no MySQL. Ele cria um arquivo .sql que contém as instruções SQL necessárias para recriar o banco de dados.
1. Exportar um único banco de dados
Para exportar um único banco de dados, use a seguinte sintaxe:
mysqldump -u [nome de usuário] -p [nome_do_banco_de_dados] > [nome_do_arquivo] .sql
- -u
: O nome de usuário do MySQL.[nome de usuário] - -p: Solicita a senha do MySQL.
: O nome do banco de dados que você deseja exportar.[database_name] .sql: O nome do arquivo de saída que conterá o backup do banco de dados.[filename]
Exemplo:
Esse comando solicitará a senha do usuário root e criará um arquivo chamado mydatabase_backup.sql contendo todos os dados e a estrutura do mydatabase.
2. Exportar vários bancos de dados
Para exportar vários bancos de dados, use o sinalizador –databases seguido dos nomes dos bancos de dados:
mysqldump -u [nome de usuário] -p --databases [banco de dados1] [banco de dados2] > [nome do arquivo] .sql
Exemplo:
mysqldump -u root -p --databases db1 db2 > multiple_databases_backup.sql
Esse comando exportará db1 e db2 para multiple_databases_backup.sql.
3. Exportar todos os bancos de dados
Para exportar todos os bancos de dados em seu servidor MySQL, use o sinalizador –all-databases:
mysqldump -u [nome de usuário] -p --all-databases > all_databases_backup.sql
Exemplo:
mysqldump -u root -p --all-databases > all_databases_backup.sql
Isso cria um backup completo de todos os bancos de dados em all_databases_backup.sql.
4. Exportar somente a estrutura da tabela (sem dados)
Se você precisar apenas da estrutura das tabelas sem os dados, adicione o sinalizador –no-data:
mysqldump -u [ nome_de_usuário ] -p --no-data [nome_do_banco_de_dados] > structure_only.sql
Exemplo:
mysqldump -u root -p --no-data mydatabase > structure_only.sql
5. Exportar tabelas específicas
Para exportar tabelas específicas de um banco de dados, liste-as após o nome do banco de dados:
mysqldump -u [nome de usuário] -p [nome_do_banco_de_dados] [tabela1] [tabela2] > [nome_do_arquivo] .sql
Exemplo:
mysqldump -u root -p mydatabase table1 table2 > tables_backup.sql
Importação de bancos de dados com o mysql
Para importar um banco de dados de um arquivo SQL, use o comando mysql.
1. Importar um único banco de dados
Para importar um arquivo SQL para um banco de dados MySQL, use o seguinte comando:
mysql -u [nome de usuário] -p [nome_do_banco_de_dados] < [nome_do_arquivo] .sql
- -u
: O nome de usuário do MySQL.[nome de usuário] - -p: Solicita a senha do MySQL.
: O nome do banco de dados para o qual os dados serão importados.[database_name] .sql: O nome do arquivo .sql a ser importado.[filename]
Exemplo:
mysql -u root -p mydatabase < mydatabase_backup.sql
Esse comando solicitará a senha do usuário root e importará o conteúdo do mydatabase_backup.sql para o mydatabase.
2. Importar para um novo banco de dados
Se quiser importar para um novo banco de dados, primeiro será necessário criar o banco de dados e depois importar o arquivo .sql.
Etapa 1: Crie um novo banco de dados.
mysql -u [nome de usuário] -p -e "CREATE DATABASE [new_database_name] ;"
Etapa 2: importe o arquivo .sql para o novo banco de dados.
mysql -u [nome de usuário] -p [nome_do_novo_banco_de_dados] < [nome do arquivo] .sql
Exemplo:
mysql -u root -p -e "CREATE DATABASE newdatabase;"
mysql -u root -p newdatabase < mydatabase_backup.sql
3. Importar todos os bancos de dados
Se você fez backup de todos os bancos de dados usando --all-databases, poderá importá-los novamente usando:
mysql -u [nome de usuário] -p < all_databases_backup.sql
Exemplo:
mysql -u root -p < todos_bancos_de_dados_backup.sql
Esse comando restaurará todos os bancos de dados contidos no arquivo all_databases_backup.sql.
Dicas para usar o mysqldump e o mysql
- Use a compactação: Para economizar espaço em disco e tempo de transferência, você pode compactar o arquivo de backup usando o gzip:
mysqldump -u root -p mydatabase | gzip > mydatabase_backup.sql.gz
E para importá-lo:
gunzip < mydatabase_backup.sql.gz | mysql -u root -p mydatabase
- Verificar o banco de dados antes da importação: Certifique-se de que o banco de dados para o qual você está importando esteja vazio ou contenha dados compatíveis para evitar conflitos.
- Verifique o conjunto de caracteres: Se estiver lidando com caracteres não ASCII, certifique-se de exportar e importar com o conjunto de caracteres correto usando a opção --default-character-set:
mysqldump -u root -p --default-character-set=utf8 mydatabase > mydatabase_backup.sql
- Tratamento de erros: Se encontrar erros durante a importação, verifique se há problemas comuns, como bancos de dados ou estruturas de tabela ausentes, e certifique-se de que o arquivo .sql esteja completo.
Resumo
Exportar e importar bancos de dados MySQL usando a linha de comando é simples com o mysqldump e o mysql. Essas ferramentas permitem flexibilidade no gerenciamento de backups, na migração de bancos de dados entre servidores e na criação de exportações somente de estrutura ou específicas de dados. Ao compreender os comandos e suas opções, você pode garantir operações de banco de dados sem problemas e manter a integridade dos dados durante as transferências.