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

Como corrigir tabela wp_posts corrompida

Time Full Services Time Full Services
Tipo Banco de dados
Nome do erro Tabela wp_posts corrompida EN: Corrupted wp_posts table
Severidade Grave
Descrição A tabela de posts corrompida no WordPress acontece quando os arquivos da tabela que guarda posts e páginas ficam inconsistentes no MySQL. O conteúdo some ou não salva e o banco devolve "table is marked as crashed". O reparo reconstrói a tabela sem apagar o conteúdo.

O que é a tabela de posts corrompida no WordPress?

A tabela de posts é onde o WordPress guarda todos os posts, páginas, revisões e itens de menu. Quando ela corrompe, os arquivos de dados ou de índice ficam inconsistentes e o MySQL recusa as leituras e escritas nela. Como praticamente todo o site depende dessa tabela, a corrupção faz o conteúdo sumir, impede salvar e costuma derrubar o site. O reparo reconstrói os índices e ponteiros internos da tabela, sem remover o conteúdo.

Como identificar

  • No log do MySQL aparece “Table ‘./banco/wp_posts’ is marked as crashed and should be repaired”.
  • Posts e páginas somem do site ou do painel, ou não salvam mesmo sem erro de conexão.
  • O wp-admin mostra “One or more database tables are unavailable” apontando a tabela de posts.
  • A corrupção surge após queda de energia, disco cheio ou reinício forçado do MySQL durante uma escrita.
Antes de começar: Exporte o banco antes de reparar e remova a constante WP_ALLOW_REPAIR logo após terminar: enquanto ela existe, qualquer visitante consegue abrir /wp-admin/maint/repair.php sem autenticação.

Como prevenir

  • Mantenha backups automáticos diários do banco, já que a tabela de posts guarda todo o conteúdo
  • Use o engine InnoDB, mais resistente a corrupção após quedas do que o MyISAM
  • Limite o número de revisões por post e monitore o espaço em disco do servidor

Causa

  • MySQL/MariaDB encerrado abruptamente (queda de energia ou kill) no meio de uma escrita na tabela de posts.
  • Disco do servidor cheio, impedindo o MySQL de gravar por completo os arquivos da tabela de posts.
  • Tabela MyISAM com índice estourado, comum em sites antigos com muitas revisões acumuladas.
  • Setor defeituoso no disco onde ficam os arquivos de dados da tabela de posts.
  • Importação ou migração que copiou os arquivos da tabela de forma incompleta entre servidores.

Como resolver

  1. Faça backup do banco antes de tudo: exporte o banco pelo phpMyAdmin. A tabela de posts concentra todo o conteúdo, então o backup é obrigatório antes de qualquer reparo.
  2. Tente o reparo nativo do WordPress: via FTP, adicione a constante ao wp-config.php e abra a página de reparo:
    define( 'WP_ALLOW_REPAIR', true );
    // depois acesse seudominio.com/wp-admin/maint/repair.php
  3. Repare direto no MySQL se preferir: no phpMyAdmin (aba SQL) ou via WP-CLI, rode o reparo sobre a tabela de posts apontada no erro. Em tabelas InnoDB, use a reconstrução do engine em vez de REPAIR.
  4. Remova a constante de reparo: apague a linha WP_ALLOW_REPAIR do wp-config.php assim que terminar, pois ela deixa a rota de reparo aberta sem login.
  5. Restaure de backup se o reparo falhar: se a tabela não reconstrói, importe a tabela de posts a partir do backup mais recente. Conteúdo perdido entre o backup e a falha precisa ser recriado.
SQL
-- Reparo da tabela de posts, via phpMyAdmin (aba SQL) ou cliente mysql
REPAIR TABLE wp_posts;
CHECK TABLE wp_posts;

-- REPAIR so cobre MyISAM. Em InnoDB, reconstrua o engine para forcar o reparo:
ALTER TABLE wp_posts ENGINE = InnoDB;

-- Opcional: limpar revisoes acumuladas que incham a tabela
DELETE FROM wp_posts WHERE post_type = 'revision';

Perguntas frequentes

Reparar a tabela de posts apaga meu conteúdo?
Não. O reparo reconstrói índices e ponteiros internos sem remover posts ou páginas. Ainda assim, exporte o banco antes: qualquer operação sobre uma tabela já corrompida tem algum risco.
Como confirmo que é a tabela de posts que está corrompida?
O log do MySQL nomeia a tabela, por exemplo "Table './banco/wp_posts' is marked as crashed". A tela /wp-admin/maint/repair.php também lista quais tabelas precisam de reparo.
REPAIR TABLE não funcionou. O que faço?
REPAIR TABLE só atua em MyISAM. Se a tabela de posts for InnoDB, use ALTER TABLE wp_posts ENGINE=InnoDB para reconstruí-la. Se nem isso resolver, restaure a tabela a partir do backup.
Posso reparar sem editar o wp-config.php?
Sim. Com acesso SSH, o comando "wp db repair" do WP-CLI repara todas as tabelas sem precisar da constante WP_ALLOW_REPAIR nem abrir rota no navegador.
Perdi posts após o reparo. É possível recuperá-los?
O reparo não apaga conteúdo, mas dados gravados no exato momento da falha podem não ter sido salvos. A recuperação vem do backup mais recente; por isso o backup diário é tão importante nessa tabela.
A tabela de posts corrompe de novo. Por quê?
Corrupção recorrente indica causa de fundo: disco cheio, falha de hardware ou MySQL encerrado à força. Verifique o espaço em disco e a saúde do disco com o suporte da hospedagem, ou o problema volta.

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