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

Como corrigir erro de collation do banco de dados

Time Full Services Time Full Services
Tipo Banco de dados
Nome do erro Erro de collation do banco de dados EN: Database collation error
Severidade Atenção
Descrição O erro de collation do banco de dados no WordPress acontece quando tabelas ou colunas usam regras de ordenação diferentes e o MySQL recusa juntá-las, devolvendo "Illegal mix of collations". É comum após migrar o site entre servidores com versões de MySQL distintas.

O que é o erro de collation do banco de dados?

A collation é o conjunto de regras que o MySQL usa para comparar e ordenar texto, como tratar maiúsculas, acentos e qual charset adota. O WordPress moderno usa utf8mb4_unicode_ci, mas bancos antigos ou migrados misturam latin1, utf8 e utf8mb4 em tabelas diferentes. Quando uma consulta tenta unir colunas com collations incompatíveis, o MySQL não sabe qual regra aplicar e aborta a query com erro. A correção é padronizar charset e collation em todas as tabelas e colunas do banco.

Como identificar

  • No log ou na tela aparece “Illegal mix of collations (utf8mb4_unicode_ci,IMPLICIT) and (utf8_general_ci,IMPLICIT) for operation”.
  • Buscas, filtros ou plugins que cruzam tabelas falham, enquanto páginas simples continuam abrindo.
  • O erro surge logo após migrar o site para outro servidor ou importar um dump SQL antigo.
  • A tela de Saúde do Site ou um plugin acusam tabelas com collation diferente da recomendada (utf8mb4_unicode_ci).
Antes de começar: Exporte o banco antes de converter a collation: o ALTER TABLE reescreve cada tabela e, em bancos com colunas mal definidas, pode truncar texto. Converta uma tabela por vez e confira o conteúdo após cada uma.

Como prevenir

  • Padronize todo o banco em utf8mb4_unicode_ci e mantenha DB_COLLATE vazio no wp-config.php
  • Ao migrar, exporte e importe o dump no mesmo charset de destino para evitar mistura de collations
  • Antes de instalar plugins que criam tabelas, confira na Saúde do Site se a collation continua única

Causa

  • Dump SQL antigo importado em latin1 ou utf8 enquanto o WordPress novo espera utf8mb4.
  • Migração entre servidores com versões de MySQL diferentes, que aplicaram collations padrão distintas.
  • Tabela criada por um plugin com collation própria, divergente das tabelas nativas do WordPress.
  • Coluna específica com collation herdada do dump, diferente da collation declarada na tabela.
  • wp-config.php com DB_CHARSET ou DB_COLLATE fixados em valores que não batem com o banco real.

Como resolver

  1. Faça backup do banco antes de tudo: exporte o banco completo pelo phpMyAdmin ou WP-CLI. Conversão de collation reescreve todas as tabelas, então o backup é obrigatório antes de qualquer ALTER.
  2. Descubra quais collations estão em uso: no phpMyAdmin (aba SQL), liste a collation de cada tabela para identificar quais divergem do padrão utf8mb4_unicode_ci.
    SELECT TABLE_NAME, TABLE_COLLATION FROM information_schema.TABLES WHERE TABLE_SCHEMA = DATABASE();
  3. Converta as tabelas para utf8mb4: rode o ALTER TABLE ... CONVERT TO em cada tabela divergente. Isso padroniza charset e collation da tabela e de todas as colunas de texto de uma vez.
  4. Alinhe o wp-config.php: via FTP, confirme que DB_CHARSET está como utf8mb4 e que DB_COLLATE está vazio. Um DB_COLLATE fixado em valor antigo força o WordPress a recriar tabelas com a collation errada.
  5. Limpe o cache e teste: limpe qualquer cache de objeto ou de página e refaça a operação que falhava. As consultas que misturavam collations passam a rodar com uma regra única.
SQL
-- Padroniza o banco inteiro em utf8mb4 / utf8mb4_unicode_ci
-- 1) Ajusta o charset padrao do banco (novas tabelas ja nascem corretas)
ALTER DATABASE nome_do_banco CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci;

-- 2) Converte uma tabela e TODAS as suas colunas de texto de uma vez
ALTER TABLE wp_posts CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
ALTER TABLE wp_postmeta CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

-- 3) Confere o resultado
SHOW TABLE STATUS WHERE Name = 'wp_posts';

Perguntas frequentes

O que significa Illegal mix of collations no WordPress?
Significa que uma consulta tentou comparar ou unir colunas com regras de ordenação diferentes, por exemplo utf8mb4_unicode_ci com utf8_general_ci. O MySQL não decide qual regra usar e aborta a query. A solução é converter todas as tabelas para a mesma collation.
Qual collation devo usar no WordPress?
O padrão recomendado é utf8mb4 com utf8mb4_unicode_ci. O utf8mb4 cobre emojis e caracteres de 4 bytes que o antigo utf8 não suporta. Use a mesma collation em todas as tabelas para que as consultas nunca misturem regras.
Converter a collation pode apagar meus dados?
A conversão não apaga linhas, mas reescreve cada tabela e, em colunas mal definidas, pode truncar texto longo. Por isso exporte o banco antes, converta uma tabela por vez e confira o conteúdo depois de cada ALTER TABLE.
Por que o erro só apareceu depois da migração?
Servidores com versões diferentes de MySQL aplicam collations padrão distintas ao importar o dump. O banco de origem podia estar todo em utf8, e o destino criou parte das tabelas em utf8mb4, gerando a mistura que dispara o erro.
Preciso mexer no wp-config.php para corrigir collation?
Em geral sim. Confirme DB_CHARSET como utf8mb4 e deixe DB_COLLATE vazio. Um DB_COLLATE fixado em collation antiga faz o WordPress recriar tabelas com a regra errada, e o erro volta na próxima atualização.
Como vejo a collation de cada tabela sem instalar nada?
No phpMyAdmin, abra a aba SQL e consulte a tabela information_schema.TABLES filtrando pelo seu banco. Ela lista cada tabela com sua TABLE_COLLATION, mostrando rapidamente quais divergem do padrão utf8mb4_unicode_ci.

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