A migração de um banco de dados WordPress parece simples: exportar o banco de dados, importá-lo em outro local e pronto. Na prática, é nessa etapa que mais sites WordPress apresentam problemas.
Os motivos são específicos. O WordPress armazena objetos PHP serializados em seu banco de dados. Uma simples operação de localizar e substituir em uma URL quebra silenciosamente esses dados serializados, deixando seu site com uma aparência corrompida de maneiras difíceis de rastrear. Atualizações de plugins acionam migrações de esquema do banco de dados que não podem ser revertidas com uma restauração de arquivo. Um prefixo de banco de dados incorreto, uma tabela ausente ou um wp-config.php podem gerar erros diferentes que apontam para causas distintas.
Este guia abrange todos os cenários em que você precisa executar uma migração de banco de dados do WordPress, como fazer cada um deles sem perda de dados e como corrigir os erros que geralmente aparecem quando algo dá errado.
A migração de um banco de dados WordPress é o processo de transferir, copiar ou modificar um banco de dados WordPress. Geralmente ocorre ao migrar um site para uma nova hospedagem, ao trocar de domínio ou ao implantar alterações entre ambientes de teste e produção.
As migrações de banco de dados também podem ocorrer automaticamente durante atualizações importantes de plugins, quando estes modificam tabelas, colunas ou dados armazenados no banco de dados para oferecer suporte a novos recursos e funcionalidades.
Compreender ambos os tipos de migração é essencial para evitar perda de dados, problemas de compatibilidade e tempo de inatividade inesperado durante atualizações do WordPress ou migrações de sites.
Tipos de migrações de banco de dados do WordPress
Nem todas as migrações de banco de dados são iguais. O método, o risco e o preparo variam de acordo com o tipo de migração.

Migrar o banco de dados para um novo host ou domínio
Este é o cenário mais comum. Você está mudando de provedor de hospedagem, migrando de HTTP para HTTPS ou reformulando sua marca com um novo domínio. O conteúdo do banco de dados permanece intacto, mas todos os URLs armazenados nele precisam ser atualizados para refletir a nova localização.
O desafio: o WordPress armazena URLs em vários locais no banco de dados, incluindo arrays serializados nas tabelas wp_options e wp_postmeta. Uma operação manual de localizar e substituir nessas tabelas, que não leve em consideração a serialização, corromperá os dados silenciosamente.
Da fase de ensaios à produção
Ao criar um site em ambiente de teste e enviá-lo para produção, o banco de dados precisa ser migrado junto, e todos os URLs do ambiente de teste precisam ser substituídos pelos URLs de produção. Essa é uma das causas mais comuns de problemas na migração do ambiente de teste para o ambiente de produção, pois os desenvolvedores frequentemente enviam um arquivo sem atualizar o banco de dados.
Migrações de esquema acionadas por plugin
Quando os plugins modificam a estrutura do banco de dados durante uma atualização, eles estão executando uma migração de esquema: uma alteração na estrutura do banco de dados, e não apenas nos dados dentro dele. A migração HPOS (High-Performance Order Storage) do WooCommerce é um exemplo atual. Plugins de membros que movem dados de membros para novas estruturas de tabela são outro exemplo.
Essas migrações são executadas como parte do processo de atualização do plugin. Você não as aciona manualmente. É por isso que elas exigem preparação em ambiente de teste antes que a atualização seja aplicada à produção.
Precisa que a migração do seu banco de dados WordPress seja feita corretamente?
A Seahawk cuida de migrações de banco de dados WordPress, mudanças de hospedagem, implantações de ambientes de teste para produção e gerenciamento de atualizações de plugins. Sem perda de dados. Sem tempo de inatividade. Sem contratos.
O que você precisa antes de qualquer migração de banco de dados?
Preencha todos os itens desta lista antes de executar qualquer comando ou clicar em exportar.
Cópia de segurança completa do banco de dados. Exporte todo o banco de dados MySQL do seu ambiente atual usando o phpMyAdmin, WP-CLI ou a ferramenta de backup do seu provedor de hospedagem. Verifique se o arquivo de backup abre e contém dados antes de prosseguir. Um arquivo de exportação corrompido, descoberto após a sobrescrita do banco de dados original, é irrecuperável sem um backup no nível da hospedagem.
Faça backup completo dos arquivos. Seu banco de dados não funcionará sem os arquivos correspondentes do WordPress. Faça backup de toda a sua instalação do WordPress juntamente com o backup do banco de dados.
Detalhes do arquivo wp-config.php para o destino. Anote o nome do banco de dados, o nome de usuário, a senha e o host do ambiente de destino. Essas informações são necessárias para conectar seus arquivos do WordPress ao banco de dados importado.
Um ambiente de teste. Qualquer migração de banco de dados deve ser testada em um ambiente de teste antes de ser executada em produção. Isso se aplica tanto a migrações de host para host quanto a migrações de atualização de esquema de plugins.
Compatibilidade da versão do PHP confirmada. Se você estiver migrando para uma nova hospedagem com uma versão diferente do PHP, verifique se seus plugins e temas são compatíveis com a nova versão antes da migração. Incompatibilidades de versão do PHP após a migração geram erros que parecem ser problemas de banco de dados, mas na verdade são problemas de compatibilidade.
Como migrar um banco de dados WordPress: 3 métodos
O método correto depende do seu nível de familiaridade com a tecnologia e do tamanho do seu banco de dados. Os três métodos lidam corretamente com dados serializados quando usados conforme descrito abaixo.

Método 1: Plugin de Migração (Mais Fácil)
Os plugins de migração cuidam da exportação, importação, transferência de arquivos e substituição de URLs em um único processo. Eles são a escolha certa para a maioria dos proprietários de sites sem experiência com a linha de comando.
Plugins recomendados:
O Duplicator Pro lida com bancos de dados de até vários gigabytes, suporta migrações agendadas e gera um arquivo de instalação que lida automaticamente com a substituição de URLs. É a opção mais confiável para sites grandes ou complexos.
O All-in-One WP Migration cria um único arquivo compactado contendo toda a sua instalação do WordPress, incluindo o banco de dados. A versão gratuita tem um limite de tamanho de importação de 512 MB. A versão premium remove esse limite. O plugin lida com a substituição de dados serializados durante a importação.
O WP Migrate (anteriormente WP Migrate DB) foi projetado especificamente para migrações somente de banco de dados e para o envio/recebimento de dados entre ambientes. Ele lida corretamente com dados serializados e oferece suporte à migração seletiva de tabelas, o que é útil quando você deseja migrar apenas o banco de dados de conteúdo da produção para o ambiente de teste, sem sobrescrever as configurações do plugin de teste.
Migração passo a passo para o WordPress com o All-in-One:
- Instale e ative o All-in-One WP Migration no seu site de origem
- Acesse Migração completa do WordPress > Exportar
- Selecione Exportar para > Arquivo
- Aguarde a conclusão da exportação e faça o download do arquivo .wpress
- Instale o All-in-One WP Migration no seu site de destino
- Acesse Migração completa do WordPress > Importar
- Arraste e solte o arquivo .wpress ou clique para procurá-lo
- Confirme a importação quando solicitado. O plugin avisa que isso sobrescreverá todo o conteúdo existente
- Após a conclusão da importação, acesse Configurações > Links permanentes e clique em Salvar alterações sem alterar nada. Isso atualiza as regras de reescrita e resolve a maioria dos erros 404 que aparecem após a migração
Método 2: phpMyAdmin (Manual)
O phpMyAdmin é o método certo quando você precisa de controle total sobre a migração, está migrando um banco de dados grande que as ferramentas de plugin não conseguem lidar ou precisa migrar um banco de dados independentemente dos arquivos do WordPress.
Exportando o banco de dados:
- Faça login no phpMyAdmin em seu ambiente de hospedagem de origem através do painel de controle da sua hospedagem
- Selecione seu banco de dados WordPress na barra lateral esquerda
- Clique na guia Exportar
- Selecione o método de exportação personalizado
- Certifique-se de que todas as tabelas estejam selecionadas
- Em Opções específicas de formato, marque a opção Adicionar instrução DROP TABLE / VIEW / PROCEDURE / FUNCTION / EVENT / TRIGGER. Isso garante que a importação sobrescreva as tabelas existentes corretamente, em vez de causar erros de entrada duplicada
- Em Opções de criação de dados, marque Inserções completas e Inserções estendidas
- Clique em Exportar e salve o arquivo .sql
Importando o banco de dados:
- Faça login no phpMyAdmin no seu ambiente de hospedagem de destino
- Selecione ou crie o banco de dados de destino
- Clique na tabela Importar
- Clique em Escolher arquivo e selecione seu arquivo .sql
- Clique em "Ir" para executar a importação
Atualizando os URLs:
Após a importação, você deve atualizar o URL do site armazenado no banco de dados. O método mais simples para usuários sem conhecimento técnico é executar as seguintes consultas SQL na guia SQL do phpMyAdmin, substituindo old-domain.com e new-domain.com pelos seus domínios reais:
ATUALIZAR wp_options DEFINIR option_value = replace(option_value, 'https://old-domain.com', 'https://new-domain.com') ONDE option_name = 'siteurl' OU option_name = 'home';
Não execute uma operação completa de localizar e substituir em todas as tabelas usando apenas SQL. Isso corromperá os dados serializados. Use o método WP-CLI abaixo para a substituição completa.
Método 3: WP-CLI (Mais confiável para usuários técnicos)
WP-CLI é a interface de linha de comando do WordPress. Seu comando de busca e substituição é o método mais confiável para substituir URLs em um banco de dados WordPress, pois lida corretamente com dados serializados por padrão.
Pré-requisitos: acesso SSH ao seu servidor e WP-CLI instalado. A maioria dos serviços de hospedagem WordPress gerenciada (Kinsta, WP Engine, Cloudways) já vem com o WP-CLI disponível por padrão.
Exportar o banco de dados:
wp db export backup-$(date +%Y%m%d).sql
Isso exporta o banco de dados completo para um arquivo .sql com a data, localizado no seu diretório atual.
Importe o banco de dados para o destino:
wp db import backup-20260101.sql
Substitua backup-20260101.sql pelo nome do seu arquivo real.
Execute a substituição de URL:
wp search-replace 'https://old-domain.com' 'https://new-domain.com' --precise --all-tables
A opção `--precise` garante que os dados serializados sejam tratados corretamente. A opção `--all-tables` aplica a substituição a todas as tabelas do banco de dados, incluindo tabelas criadas por plugins.
Verifique a substituição:
wp search-replace 'https://old-domain.com' 'https://new-domain.com' --precise --all-tables --dry-run
Executar o comando com a opção `--dry-run` mostra quantas substituições seriam feitas sem realmente realizá-las. Execute este comando primeiro para verificar se a contagem está correta antes de executar a substituição em produção.
Limpe o cache e reescreva as regras:
limpar o cache do WordPress
wp rewrite flush
Como lidar com dados serializados durante a migração?
Essa é a parte mais incompreendida da migração de banco de dados do WordPress e a causa mais comum de problemas após a migração.
Por que a função "Localizar e Substituir" simples causa problemas no WordPress?
O WordPress armazena alguns dados em um formato PHP serializado. Uma string serializada tem a seguinte aparência:
a:2:{s:4:"home";s:22:"https://old-domain.com";}
A parte "s:22" significa "cadeia de 22 caracteres". Se você executar uma operação de localizar e substituir que altere old-domain.com para new-domain.com, o comprimento da cadeia muda, mas a contagem de "s:22" não é atualizada. O WordPress tenta ler uma cadeia de 22 caracteres, encontra uma de comprimento diferente e gera um erro.
O erro geralmente se manifesta como uma tela branca em branco, áreas de widgets quebradas ou configurações de plugins que aparecem vazias após a migração. É difícil rastreá-lo sem conhecer os dados serializados.
Como executar uma busca e substituição segura?
Utilize um destes métodos que levam em consideração a serialização:
WP-CLI (recomendado):
wp search-replace 'https://old-domain.com' 'https://new-domain.com' --precise --all-tables
Plugin Better Search Replace: Instale o plugin Better Search Replace no WordPress. Ele lida com dados serializados por padrão e oferece uma opção de teste para visualizar as alterações antes de aplicá-las. Esta é a opção ideal se você não tiver acesso ao WP-CLI.
Interconnect/it Search Replace DB: Um script PHP que você carrega na raiz do seu servidor, executa via navegador e exclui após o uso. Ele manipula dados serializados e suporta modos de execução em tempo real ou de teste.
Como verificar se a operação de localizar e substituir funcionou?
Após executar a substituição, verifique estes locais:
- Acesse Configurações > Geral no painel do WordPress. Confirme se o Endereço do WordPress e o Endereço do Site exibem seu novo domínio
- Acesse a interface do seu site e verifique o console do desenvolvedor do navegador em busca de avisos de conteúdo misto (recursos HTTP sendo carregados em um domínio HTTPS)
- Verifique sua biblioteca de mídia: ao clicar em uma imagem, o URL correto é exibido?
- Execute uma busca com o Screaming Frog ou use o Broken Link Checker para verificar se ainda existem URLs de domínios antigos.
Migrações de banco de dados acionadas por plugins no WordPress
Diferentemente das migrações de host para host, você não aciona esses processos manualmente. Eles são executados como parte do processo de atualização do plugin, e é por isso que a preparação do ambiente de teste é mais importante aqui do que em qualquer outro lugar.
Como funcionam as migrações de banco de dados do WooCommerce?
O WooCommerce introduziu o HPOS (High-Performance Order Storage) como uma grande mudança estrutural na forma como os pedidos são armazenados. Ao migrar para o HPOS, o WooCommerce cria novas tabelas de pedidos dedicadas e move todos os dados históricos de pedidos para elas.
Essa migração é executada automaticamente quando você ativa o HPOS nas configurações do WooCommerce ou quando atualiza o WooCommerce em um site com a migração pendente. Ela não pode ser revertida por meio de arquivos de restauração. Se a migração for executada em um site onde alguns plugins não são compatíveis com HPOS, esses plugins deixarão de funcionar corretamente.
Como se preparar: Antes de ativar o HPOS ou atualizar o WooCommerce para uma versão principal diferente, execute o verificador de compatibilidade do WooCommerce acessando WooCommerce > Status > HPOS. Ele lista todos os plugins instalados e indica se são compatíveis com o HPOS. Resolva as incompatibilidades antes de executar a migração.
Como funcionam as migrações do plugin de membros?
Os plugins de associação, incluindo MemberPress, Paid Memberships Proe Restrict Content Pro, criam suas próprias tabelas de banco de dados personalizadas para registros de membros, dados de assinatura e histórico de transações. Quando esses plugins são atualizados para versões principais diferentes, às vezes alteram essas estruturas de tabela.
Como os dados de membros são armazenados em tabelas personalizadas em vez de tabelas padrão do WordPress, os plugins de migração podem não incluir esses dados em suas exportações por padrão. Verifique explicitamente se sua ferramenta de backup abrange tabelas de plugins personalizados antes de migrar um site de membros.
Como se preparar antes que um plugin desencadeie uma migração?
- Configure um ambiente de teste que seja uma réplica exata do seu banco de dados de produção.
- Aplique a atualização do plugin primeiro no ambiente de teste
- Verifique todas as funcionalidades afetadas (finalização de compra, login de membros, gerenciamento de assinaturas) no ambiente de teste após a atualização
- Se o ambiente de teste for bem-sucedido, aplique a mesma atualização à produção durante um período de baixo tráfego
- Mantenha um backup verificado imediatamente anterior à atualização de produção
Lista de verificação do banco de dados pós-migração
Após a migração do banco de dados, verifique todos os itens antes de informar a alguém que a migração foi concluída.
- O painel de administração do WordPress carrega sem erros no novo URL
- A interface do site carrega corretamente no novo URL
- Todos os arquivos de mídia carregam corretamente (sem imagens corrompidas)
- Os formulários de contato são enviados e os e-mails de confirmação são enviados
- O login do usuário funciona para todos os tipos de conta
- Se for WooCommerce: realize um teste de finalização de compra de ponta a ponta
- Se for um site de membros: faça login como membro e verifique o acesso ao conteúdo
- O Google Search Console não mostra erros de cobertura de índice após o reenvio do sitemap
- Não há avisos de conteúdo misto (recursos HTTP em um site HTTPS) no console do navegador
- Não há URLs de domínio antigos visíveis no código-fonte da página ou na aba de rede do navegador
- Cache do plugin de cache limpo
- Estrutura de links permanentes atualizada: Configurações > Links permanentes > Salvar alterações
Erros comuns na migração do banco de dados do WordPress e como corrigi-los
Não tente executar a migração novamente antes de identificar o erro. Cada erro abaixo indica exatamente o que deu errado e o que deve ser alterado antes de tentar novamente.

Erro 1062: Entrada duplicada para a chave PRIMARY
Esse erro ocorre quando você importa um banco de dados para um destino que já contém dados. O script de importação tenta inserir uma linha com um ID que já existe.
Correção: Antes de importar, exclua todas as tabelas existentes no banco de dados de destino ou certifique-se de que seu arquivo de exportação inclua instruções DROP TABLE. No phpMyAdmin, ao exportar, marque a opção para incluir instruções DROP TABLE. No WP-CLI: execute o comando `wp db reset --yes` e, em seguida, `wp db import backup.sql`.
Erro 2002: Não foi possível conectar ao servidor MySQL
Este erro indica que o WordPress não consegue se conectar ao servidor de banco de dados. Geralmente, ele ocorre após uma migração, quando o nome do host do banco de dados no arquivo wp-config.php não corresponde ao nome do host real no novo servidor.
Solução: Abra o arquivo wp-config.php e verifique o valor de DB_HOST. Na maioria das hospedagens compartilhadas, ele é localhost. Em hospedagens WordPress gerenciadas, pode ser um nome de host específico fornecido no painel de controle da sua hospedagem. Atualize o valor de DB_HOST para corresponder ao nome de host MySQL do seu servidor de destino.
Erro 1045: Acesso negado para o usuário
Esse erro significa que o nome de usuário ou a senha do banco de dados no arquivo wp-config.php não correspondem às credenciais do banco de dados no servidor de destino.
Solução: Abra o arquivo wp-config.php e verifique se os valores de DB_USER e DB_PASSWORD correspondem às credenciais do usuário do banco de dados no servidor de destino. No cPanel, acesse Bancos de Dados MySQL e confirme se o usuário está atribuído ao banco de dados correto com todos os privilégios.
Considerações finais sobre migrações de banco de dados do WordPress
As migrações de banco de dados do WordPress geralmente falham por dois motivos: dados serializados que uma simples operação de localizar e substituir corrompe silenciosamente, e migrações de esquema acionadas por plugins que são executadas automaticamente durante atualizações em sites despreparados.
Ambos os problemas têm soluções claras. Use o WP-CLI ou uma ferramenta de busca e substituição que leve em consideração a serialização, em vez de usar a função de localizar e substituir do SQL. Prepare um ambiente de teste antes de aplicar atualizações de plugins que acionem migrações de esquema. Faça um backup verificado antes de cada etapa de migração e teste-o antes de utilizá-lo.
Os três métodos de migração descritos acima abrangem todos os níveis de habilidade: plugins para quem prefere um processo guiado, phpMyAdmin para quem precisa de controle granular e WP-CLI para quem tem acesso à linha de comando. Escolha o método que melhor se adapta ao seu ambiente e siga a lista de verificação pós-migração antes de finalizar o projeto.
Se você precisa de uma migração de banco de dados WordPress realizada por uma equipe experiente, a Seahawk já gerenciou migrações para centenas de sites WordPress em todos os níveis de complexidade.
Perguntas frequentes sobre migrações de banco de dados do WordPress
O que é uma migração de banco de dados WordPress?
Uma migração de banco de dados do WordPress consiste em mover um banco de dados do WordPress de um servidor para outro (durante uma mudança de hospedagem, alteração de domínio ou implantação de um ambiente de teste para produção) ou em uma alteração de esquema acionada por um plugin que modifica a estrutura do banco de dados durante uma atualização de versão principal. Ambos os tipos envolvem riscos e exigem preparação. A migração do banco de dados requer a substituição de URLs com reconhecimento de serialização. Migrações acionadas por plugins exigem testes em ambiente de teste antes da atualização ser executada em produção.
Como migrar um banco de dados WordPress sem perder dados?
Faça um backup verificado antes de começar. Use um método de migração que leve em consideração a serialização: WP-CLI search-replace com a flag --precise, o plugin Better Search Replace ou um plugin de migração como o Duplicator Pro ou o All-in-One WP Migration. Nunca execute uma busca e substituição SQL bruta em todas as tabelas, pois isso corromperá os dados serializados do WordPress. Após a migração, verifique a funcionalidade executando um teste completo de finalização de compra, login e envio de formulário antes de publicar o site.
O que são dados serializados no WordPress e por que isso é importante para a migração?
O WordPress armazena algumas configurações e dados de plugins como objetos PHP serializados no banco de dados. Strings serializadas incluem uma contagem de caracteres como parte de seu formato. Se você alterar uma URL usando uma simples operação de localizar e substituir, o comprimento da URL muda, mas a contagem de caracteres não é atualizada, corrompendo os dados. Isso causa telas em branco, áreas de widgets vazias e configurações de plugins quebradas após a migração. Use o WP-CLI ou uma ferramenta de busca e substituição que suporte serialização para lidar corretamente com dados serializados.
Como faço para exportar um banco de dados do WordPress?
Exporte um banco de dados do WordPress através do phpMyAdmin (acesse seu banco de dados, clique em Exportar, escolha Personalizado e selecione todas as tabelas com instruções DROP TABLE incluídas), através do WP-CLI com o comando wp db export backup.sql ou através de um plugin de migração como o All-in-One WP Migration ou o Duplicator. Sempre verifique se o arquivo exportado abre e contém dados antes de prosseguir com a migração.
O que é uma migração de banco de dados acionada por um plugin no WordPress?
Quando plugins como o WooCommerce, sistemas de membros ou construtores de páginas são atualizados para versões principais, às vezes modificam automaticamente a estrutura do banco de dados durante o processo de atualização. A migração HPOS do WooCommerce é um exemplo recente. Essas alterações de esquema não podem ser revertidas simplesmente revertendo os arquivos do plugin. Quaisquer alterações feitas no banco de dados durante a atualização persistem mesmo se você voltar para uma versão anterior do plugin. É por isso que testar atualizações importantes de plugins em um ambiente de teste antes de entrar em produção é fundamental.
Como posso corrigir o erro 1045 "Acesso negado" após uma migração de banco de dados do WordPress?
O erro 1045 significa que o nome de usuário ou a senha do banco de dados no arquivo wp-config.php não correspondem às credenciais do banco de dados no servidor de destino. Abra o arquivo wp-config.php e verifique se os valores de DB_USER e DB_PASSWORD correspondem às credenciais que você configurou para o banco de dados no novo servidor. No cPanel, acesse Bancos de Dados MySQL, confirme se o usuário do banco de dados existe e verifique se ele está atribuído ao banco de dados correto com todos os privilégios.
Preciso atualizar o banco de dados depois de alterar meu domínio do WordPress?
Sim. O WordPress armazena o URL do site e o URL da página inicial na tabela wp_options do banco de dados. Após alterar o domínio, esses valores precisam ser atualizados. O método mais seguro é usar o WP-CLI: execute o comando wp search-replace 'https://dominio-antigo.com' 'https://dominio-novo.com' --precise --all-tables após importar o banco de dados. Isso substitui todas as ocorrências, inclusive aquelas em dados serializados. Após a substituição, atualize os links permanentes acessando Configurações > Links permanentes e clicando em Salvar alterações.