🎉 USE O CUPOM DESCONTO.FULL | 20% OFF acima de R$ 50,00

Como corrigir Table doesn’t exist após migração

Time Full Services Time Full Services
Tipo Banco de dados
Nome do erro Table doesn't exist após migração EN: Table doesn't exist
Severidade Grave
Descrição O erro Table doesn't exist no WordPress aparece quando o site procura uma tabela do banco que não existe com aquele nome, quase sempre após uma migração. A causa típica é o prefixo de tabela do wp-config.php não bater com o prefixo real das tabelas importadas, ou um dump exportado de forma incompleta.

O que é o erro table doesnt exist no WordPress?

Table doesn’t exist é o erro que o MySQL retorna (código 1146) quando o WordPress consulta uma tabela que não existe com o nome esperado no banco. No WordPress, surge principalmente depois de migrar de servidor: o dump foi importado com um prefixo diferente do que está no wp-config.php, ou algumas tabelas ficaram de fora na exportação. O WordPress monta o nome da tabela juntando o prefixo definido em $table_prefix com o sufixo (posts, options, users), e se esse prefixo não casa com o do banco, ele procura uma tabela que de fato não existe.

Como identificar

  • O log ou a tela mostra “Table ‘meubanco.wp_posts’ doesn’t exist” ou “Error 1146: Table … doesn’t exist”.
  • O site quebrou logo após uma migração de host ou uma importação de banco via phpMyAdmin.
  • O wp-admin não abre e o front mostra erro, mas a conexão com o banco está funcionando.
  • No phpMyAdmin as tabelas existem, porém com um prefixo diferente do que está no wp-config.php.
Antes de começar: Faça backup do banco e do wp-config.php antes de alterar o prefixo ou reimportar. Mudar o prefixo sem atualizar também as referências internas pode deixar o site inacessível.

Como prevenir

  • Antes de migrar, anote o prefixo de tabelas do site de origem e replique-o no destino
  • Use uma ferramenta de migração que exporta o banco completo em vez de dumps manuais parciais
  • Após importar, confira a contagem de tabelas no destino contra a origem antes de apontar o domínio

Causa

  • Prefixo em $table_prefix no wp-config.php diferente do prefixo real das tabelas importadas.
  • Dump SQL exportado de forma incompleta, deixando uma ou mais tabelas de fora da importação.
  • Importação interrompida no meio por timeout ou limite de pacote, criando só parte das tabelas.
  • Renomeação manual do prefixo das tabelas no banco sem atualizar o wp-config.php e a wp_options.
  • Importação para o banco errado, deixando o WordPress apontando para um schema sem as tabelas.

Como resolver

  1. Descubra o prefixo real no phpMyAdmin: abra o phpMyAdmin, selecione o banco do site e veja o início do nome das tabelas (por exemplo wp_ ou wpxy_). Esse é o prefixo verdadeiro que o wp-config.php precisa apontar.
  2. Alinhe o prefixo no wp-config.php: via FTP, edite o wp-config.php e ajuste a linha $table_prefix para o prefixo exato que você viu no banco, mantendo o sublinhado final. Salve e recarregue o site.
  3. Confirme se todas as tabelas foram importadas: compare a lista de tabelas do banco com a estrutura padrão do WordPress (posts, options, users, usermeta, postmeta, terms e outras). Se faltar alguma, a importação ficou incompleta.
  4. Reimporte o dump completo se faltarem tabelas: exporte de novo do site de origem garantindo todas as tabelas, apague o banco de destino e reimporte o dump inteiro. Importações cortadas por timeout deixam tabelas faltando.
  5. Confira que está no banco certo: verifique no wp-config.php se DB_NAME aponta para o banco que de fato contém as tabelas. Apontar para um schema vazio ou errado gera o mesmo erro de tabela inexistente.
SQL
-- Liste as tabelas para descobrir o prefixo real (rode no phpMyAdmin, aba SQL)
SHOW TABLES;

-- Confirme se a tabela esperada existe com o prefixo certo
SHOW TABLES LIKE 'wp_%';

-- Se o prefixo real for diferente (ex.: wpxy_), renomeie de volta para o do wp-config:
RENAME TABLE wpxy_posts TO wp_posts;
RENAME TABLE wpxy_options TO wp_options;
-- (repita para cada tabela; ou ajuste o $table_prefix no wp-config em vez de renomear)

Perguntas frequentes

Por que o erro Table doesn't exist aparece logo após migrar?
Porque na migração o banco foi importado com um prefixo de tabela diferente do que está no wp-config.php, ou algumas tabelas ficaram de fora do dump. O WordPress monta o nome com o prefixo definido e procura uma tabela que não existe com aquele nome.
Como descubro o prefixo correto das minhas tabelas?
Abra o phpMyAdmin, selecione o banco do site e olhe o começo do nome das tabelas, como wp_ ou wpxy_. Esse início é o prefixo real, e é ele que a linha $table_prefix do wp-config.php precisa refletir exatamente.
Mexer no $table_prefix do wp-config quebra o site?
Não, desde que o valor passe a casar com o prefixo real das tabelas no banco. O risco é definir um prefixo que não corresponde a tabela nenhuma. Por isso confira o prefixo no phpMyAdmin antes de salvar e mantenha um backup do arquivo.
Faltam tabelas no banco depois da importação. O que fazer?
A importação provavelmente foi cortada por timeout ou limite de pacote. Exporte o dump completo da origem de novo, limpe o banco de destino e reimporte tudo. Confira no fim se a contagem de tabelas bate com a do site original.
Qual a diferença entre Table doesn't exist e tabelas indisponíveis?
Table doesn't exist quer dizer que a tabela não existe com aquele nome, em geral por prefixo errado ou importação incompleta. Tabelas indisponíveis indicam tabelas que existem mas estão corrompidas e precisam de reparo. As causas e as correções são diferentes.
O DB_NAME pode causar esse erro?
Sim. Se o DB_NAME no wp-config.php apontar para um banco vazio ou errado, o WordPress não encontra as tabelas e retorna Table doesn't exist mesmo que elas existam em outro schema. Confirme que o DB_NAME aponta para o banco que de fato contém as tabelas.

Seja PRO.

Tenha acesso a snippets de código premium — PHP, JavaScript, CSS e HTML prontos para usar em seus projetos.

Conhecer o plano Pro →

Uma nova era para o WordPress.

A FULL Services redefine o CMS com uma arquitetura modular que transforma o WordPress em um motor de crescimento digital. 

Painéis personalizados

Um novo nível de controle para o WordPress. Acompanhe métricas, automações e evolução do seu site em um único painel visual.

A força por trás de grandes marcas

Para agências, estúdios e profissionais independentes que desejam oferecer soluções de alto nível com sua própria marca.

Componentes

Hero Sections

30 componentes

Seções de CTA

14 componentes

Login

14 componentes

Blog

14 componentes

Cabeçalhos

24 componentes

Seções de FAQ

53 componentes

Cadastro

53 componentes

Blog individual

53 componentes

Rodapés

28 componentes

Seções de contato

27 componentes

Seções de preços

27 componentes

Faixas

27 componentes

Portfólio

16 componentes

Seções de equipe

12 componentes

Números

12 componentes

Logotipos

12 componentes