Importar banco de dados MySQL: passo a passo e erros comuns
Do arquivo .sql ao banco funcionando: como exportar com cuidado, importar no mesmo servidor ou em outro, usar o PowerShell e entender os erros que aparecem.
Por Redação Eleven Host · @robson.direitodigital · 27 de outubro de 2026 · 7 min de leitura

Capa da Redação Eleven Host para o guia: Importar banco de dados MySQL: passo a passo e erros comuns Arte: Eleven Host
Para importar banco de dados MySQL, você precisa de um arquivo .sql gerado por exportação, de um banco de destino e de um comando do cliente mysql. O comando certo depende de uma coisa que está no começo do arquivo.
Este guia mostra como exportar com cuidado, importar no mesmo servidor e em servidor remoto, e o que fazer quando aparece erro. Os comandos seguem o manual do MySQL 8.4. Troque nome_do_banco, usuario e endereco-do-servidor pelos seus dados.
O guia Banco de dados MySQL na nuvem: guia para começar traz um roteiro curto de migração. Aqui o foco é só a importação, com os casos e os erros em detalhe.
Quando você precisa importar um banco
A importação aparece em três situações comuns: mudar o site ou o sistema para outro servidor, restaurar um backup depois de um problema e levar os dados para um banco gerenciado. Nos três casos o ponto de partida é o mesmo: um arquivo .sql com os comandos que recriam tabelas e registros.
Esse arquivo é um texto. Importar é pedir ao cliente mysql que leia esse texto e execute os comandos dele no banco de destino.
Antes de começar: olhe o início do arquivo
O arquivo veio com ou sem CREATE DATABASE e USE? Abra o começo dele num editor de texto e procure essas duas linhas. A resposta decide o comando de importação.
- Sem essas linhas: o dump foi gerado de um único banco, sem a opção
--databases. Na importação você precisa dizer em qual banco quer gravar, e esse banco tem de existir antes. Dá para importar num banco de nome diferente do original. - Com essas linhas: o dump foi gerado com
--databasesou--all-databases. Ele cria o banco e passa a usá-lo sozinho, então a importação devolve os dados ao banco de origem, com o mesmo nome.
Se o arquivo vier em .gz, descompacte-o antes de olhar o início.
Como exportar direito
Se você ainda tem acesso ao banco antigo, gere o dump com estas opções.
- Para um site ou loja no ar, use
mysqldump --single-transaction -u usuario -p nome_do_banco > dump.sql. A opção--single-transactiontira uma cópia consistente das tabelas InnoDB sem travá-las. - Se quer levar o nome do banco junto, acrescente
--databases:mysqldump --single-transaction --databases nome_do_banco -u usuario -p > dump.sql. O arquivo passa a incluirCREATE DATABASEeUSE. - Restrinja o acesso ao arquivo:
chmod 600 dump.sql.
O -p pede a senha no terminal. Não escreva a senha dentro do comando.
Um dump traz os dados do negócio inteiro. Não deixe esse arquivo em /tmp nem em pasta pública do site, onde outras pessoas podem baixá-lo ou lê-lo.
Arquivo grande: comprima na exportação
Dumps de bases grandes podem ficar pesados para guardar e transferir. Comprima com gzip na hora de exportar e descomprima na hora de importar:
- Exportar:
mysqldump --single-transaction -u usuario -p nome_do_banco | gzip > dump.sql.gz - Importar:
gunzip < dump.sql.gz | mysql -u usuario -p nome_do_banco
O segundo comando manda o texto descomprimido direto para o mysql, sem criar um arquivo grande no disco.
Importar no mesmo servidor
Use este caminho quando o MySQL está na máquina em que você está logado. Primeiro crie o banco de destino, depois importe.
- Crie o banco:
mysqladmin create nome_do_banco - Importe:
mysql nome_do_banco < dump.sql
Se preferir trabalhar dentro do cliente, entre com mysql -u usuario -p e rode:
CREATE DATABASE IF NOT EXISTS nome_do_banco;USE nome_do_banco;source dump.sql
Se o seu dump foi gerado com --databases, ele já tem o CREATE DATABASE e o USE. Nesse caso não precisa criar nada antes: importe com mysql -u usuario -p < dump.sql.
Procura um banco de dados gerenciado? O 11SQL Mini sai a partir de R$ 9,90/mês; confira na loja quais bancos e recursos cada plano inclui. Ver bancos de dados
Importar em servidor remoto ou banco gerenciado
Quando o banco de destino está em outra máquina, o cliente mysql conecta pela rede. Informe o endereço do servidor com -h:
mysql -h endereco-do-servidor -u usuario -p nome_do_banco < dump.sql
Use o usuário criado para a aplicação, com permissão só sobre esse banco, e não o usuário administrador. O -p pede a senha; não a escreva no comando.
Em banco gerenciado, confira com o provedor os dados de conexão (endereço, usuário e nome do banco). O banco de destino também precisa existir antes da importação, a não ser que o seu dump traga o CREATE DATABASE. Nesse caso, confirme com o provedor se o seu usuário tem permissão para criar bancos.
Rodar o comando sem olhar o início do arquivo é um tropeço evitável. Ler antes ajuda a evitar dados gravados no banco errado.
Importar no Windows com PowerShell
No PowerShell, o símbolo < é reservado e o redirecionamento do jeito Linux não funciona. O manual do MySQL indica chamar o Prompt de Comando por dentro do PowerShell:
cmd.exe /c "mysql -u usuario -p nome_do_banco < dump.sql"
O restante é igual: o banco precisa existir e o -p pede a senha. Rode o comando na pasta onde está o dump.sql ou informe o caminho completo do arquivo.
Erros comuns e o que olhar
- Unknown database: o banco de destino não foi criado ou o nome está errado. Crie o banco, confira a grafia e rode de novo.
- Access denied: usuário, senha ou permissão incorretos. Confira os três e veja se o usuário tem acesso a esse banco.
- Erro de DEFINER ou de privilégio em banco gerenciado: o dump traz views ou rotinas criadas por outro usuário. Confira com o provedor como tratar esses objetos.
- Falha por causa de
SET @@GLOBAL.gtid_purged: em dump parcial, essa linha pode derrubar a importação. Gere o dump de novo com--set-gtid-purged=OFF. - Acentos trocados por símbolos: o conjunto de caracteres do dump e o do banco de destino são diferentes. Compare os dois antes de repetir a importação.
Quando algo falha no meio, leia a mensagem inteira: se a mensagem trouxer o número da linha do arquivo, abra o dump nessa linha para ver o que está ali.
Depois de importar
Terminar a importação sem erro não encerra o trabalho. Siga esta ordem:
- Troque os dados de conexão do sistema (endereço, usuário, senha e nome do banco) para apontar ao banco novo.
- Teste as telas principais: login, listagens e uma gravação de teste.
- Mantenha o banco antigo intacto até confirmar que tudo funciona.
- Apague o
dump.sqldepois de importar, para não deixar uma cópia dos dados parada num servidor.
Se o destino for uma VPS com WordPress, o guia Instalar WordPress na VPS: passo a passo com Nginx mostra onde o banco entra na montagem do site.
Checklist da importação
- Abri o início do arquivo e sei se ele tem
CREATE DATABASEeUSE. - O banco de destino existe, ou o dump o cria.
- Usei o usuário da aplicação, não o administrador.
- A senha foi digitada no
-p, não escrita no comando. - O dump tem
chmod 600e não está em/tmpnem em pasta pública. - Testei as telas principais com o sistema apontando para o banco novo.
- O banco antigo continua intacto.
- Apaguei o dump depois de confirmar.
Quer rodar o banco em um servidor seu? Veja os planos de VPS a partir de R$ 17,00/mês, no Plano Bronze. Ver planos de VPS
Perguntas frequentes
Posso importar o dump num banco com nome diferente do original?
Pode, quando o dump foi gerado sem --databases. Nesse caso o arquivo não traz o nome do banco, então você escolhe o destino no comando. Se o arquivo tem CREATE DATABASE e USE, a importação volta para o nome de origem.
O banco de destino precisa existir antes?
Sim, quando o dump não traz CREATE DATABASE. Crie com mysqladmin create nome_do_banco ou com CREATE DATABASE IF NOT EXISTS nome_do_banco; dentro do cliente.
Como escrevo a senha no comando de importação?
Não escreva. Use -p sem valor e o cliente pergunta a senha no terminal.
O comando com o sinal de menor não funciona no PowerShell. E agora?
O PowerShell reserva o símbolo <. Chame o Prompt de Comando com cmd.exe /c "mysql -u usuario -p nome_do_banco < dump.sql".
O que fazer se a importação der erro no meio?
Leia a mensagem completa, ache o erro na lista deste guia e corrija a causa. Depois confira se o banco de destino ficou com tabelas pela metade; se ficou, o mais seguro é repetir a importação do começo em um banco de destino vazio.
Se o destino for uma VPS nova, o guia Como montar servidor VPS: do plano ao primeiro site traz o caminho do plano ao primeiro site.