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

Como corrigir a alteração de prefixo do banco que falha no All in One Security

Time Full Services Time Full Services
Tipo Seguranca
Nome do erro Alteração de prefixo do banco falha no All in One Security EN: All in One Security database prefix change failing
Severidade Grave
Descrição No All in One Security, mudar o prefixo do banco falha quando o wp-config.php não é gravável pelo PHP ou quando o usuário do MySQL não tem privilégio ALTER para renomear as tabelas. A correção exige liberar a escrita do arquivo e conceder o privilégio.

O que é erro ao mudar prefixo do banco no AIOS?

A funcionalidade Database Security do All in One Security (AIOS) troca o prefixo padrão das tabelas (o famoso wp_) por um valor aleatório, para dificultar ataques automatizados que assumem nomes de tabela previsíveis. Ao executar, o plugin renomeia cada tabela do banco e reescreve a linha do prefixo dentro do wp-config.php.

O erro Não Altera aparece quando uma dessas duas operações é bloqueada: ou o PHP não consegue gravar no wp-config.php, ou o usuário do MySQL configurado no site não tem permissão para renomear tabelas. Nesses casos o AIOS exibe a mensagem de falha e mantém o prefixo antigo, sem deixar o banco em estado inconsistente.

Como identificar

  • Mensagem na tela do plugin: ‘Unable to write to the wp-config.php file. Please ensure it is writable.’ em WP Security -> Database Security após clicar em alterar o prefixo
  • Mensagem ‘Error: The DB prefix could not be changed.’ ou ‘The table rename failed’ exibida no topo da aba Database Security
  • O campo de prefixo continua mostrando o valor antigo (por exemplo wp_) mesmo depois de salvar e recarregar a página
  • Aviso no log de erros do PHP do tipo ‘Access denied’ ou ‘command denied to user’ apontando para um comando ALTER ou RENAME TABLE
  • Em multisite, a aba Database Security informa que o recurso não está disponível ou aparece marcado como ativo em subsites mesmo sem ter sido aplicado
Antes de começar: A alteração de prefixo renomeia todas as tabelas do banco e é irreversível sem backup. Sempre exporte o banco e copie o wp-config.php antes de executar, e tenha o arquivo .sql à mão para restaurar caso o site pare de carregar.

Como prevenir

  • Defina o prefixo personalizado na instalação do WordPress, antes de popular o banco, evitando renomear tabelas em produção.
  • Confirme com a hospedagem que o usuário do MySQL do site já possui o privilégio ALTER antes de usar a ferramenta.
  • Mantenha o wp-config.php em 0444 no dia a dia e libere a escrita apenas durante a operação, voltando ao somente leitura logo depois.
  • Em ambientes multisite, não dependa do AIOS para o prefixo: trate o prefixo base na criação da rede, pois a ferramenta é desativada nesse cenário.

Causa

  • O arquivo wp-config.php está somente leitura para o usuário do PHP: a permissão está em 0444 ou o dono do arquivo é diferente do usuário que roda o PHP-FPM, então o AIOS não consegue reescrever a linha do prefixo.
  • O usuário do MySQL definido em DB_USER no wp-config.php não tem o privilégio ALTER (necessário para o comando RENAME TABLE), comum em hospedagens que concedem apenas SELECT, INSERT, UPDATE e DELETE.
  • O novo prefixo informado é inválido: contém caracteres fora de letras, números e underline, ou não termina com underline, fazendo o AIOS recusar a operação antes de tocar no banco.
  • O site é uma instalação multisite (rede), cenário em que o AIOS desativa a alteração de prefixo porque o WordPress multisite depende do prefixo base para montar os nomes de tabela de cada subsite.
  • Um plugin de cache de objeto (Redis ou Memcached) ou de segurança concorrente mantém conexões antigas com os nomes de tabela anteriores, e o teste de gravação do AIOS aborta para não corromper o acesso ao banco.

Como resolver

  1. Faça backup completo do banco e do wp-config.php antes de tocar no prefixo: Renomear tabelas é uma operação irreversível sem backup. Exporte o banco e baixe uma cópia do arquivo de configuração por FTP ou pelo gerenciador de arquivos da hospedagem antes de qualquer alteração.
    wp db export backup-antes-prefixo.sql
    cp wp-config.php wp-config.php.bak
  2. Deixe o wp-config.php gravável para o usuário do PHP: O AIOS precisa reescrever a linha do prefixo dentro do arquivo. Ajuste a permissão para permitir escrita pelo dono e confirme que o dono do arquivo é o mesmo usuário do PHP-FPM. Após o plugin concluir, volte a permissão para somente leitura.
    chmod 0644 wp-config.php
    ls -l wp-config.php
    chmod 0444 wp-config.php
  3. Conceda o privilégio ALTER ao usuário do banco: Sem ALTER o MySQL recusa o RENAME TABLE que o AIOS dispara. Conecte no banco com um usuário administrativo, conceda o privilégio ao usuário do site e recarregue as permissões. Troque o nome do usuário, do banco e do host pelos valores reais do seu wp-config.php.
    GRANT ALTER ON nome_do_banco.* TO 'usuário_wp'@'localhost';
    FLUSH PRIVILEGES;
  4. Informe um prefixo válido e execute pela tela do plugin: Acesse WP Security -> Database Security, marque a opção para gerar um novo prefixo ou digite um valor próprio. O prefixo deve conter apenas letras, números e underline e terminar com underline. Salve e aguarde a confirmação de sucesso.
    Prefixo válido de exemplo: a7x9_
    Caminho do menu: WP Security -> Database Security
  5. Verifique o prefixo no wp-config.php e teste o acesso: Depois da troca, confirme que a linha do prefixo no arquivo reflete o novo valor e que o painel e o site abrem normalmente. Se algo falhar, restaure o backup do passo 1 e investigue o privilégio ou a permissão antes de tentar de novo.
    grep table_prefix wp-config.php
    wp option get siteurl
SQL
-- Verificar os privilégios atuais do usuário do site
SHOW GRANTS FOR 'usuario_wp'@'localhost';

-- Conceder ALTER (necessário para RENAME TABLE que o AIOS executa)
GRANT ALTER ON nome_do_banco.* TO 'usuario_wp'@'localhost';
FLUSH PRIVILEGES;

Perguntas frequentes

Por que o AIOS não altera o prefixo do meu banco
Na maioria dos casos o wp-config.php está somente leitura para o PHP ou o usuário do MySQL não tem o privilégio ALTER para renomear as tabelas. O plugin testa as duas condições e aborta sem alterar nada se qualquer uma falhar, mantendo o prefixo antigo.
Mudar o prefixo do banco com o AIOS é seguro
É seguro desde que você faça backup antes. A operação renomeia todas as tabelas e reescreve o wp-config.php de uma vez. Sem backup, uma falha no meio do processo ou um plugin que dependa de nomes fixos de tabela pode deixar o site sem acesso ao banco.
Qual privilégio do MySQL o AIOS precisa para trocar o prefixo
Ele precisa do privilégio ALTER no banco do site, porque o comando RENAME TABLE usado para renomear cada tabela exige esse privilégio. Hospedagens que concedem apenas SELECT, INSERT, UPDATE e DELETE fazem a operação falhar com mensagem de acesso negado.
Posso mudar o prefixo do banco em um site multisite com o AIOS
Não. O AIOS desativa a alteração de prefixo em instalações multisite porque a rede monta os nomes de tabela de cada subsite a partir do prefixo base. Trocar esse valor depois de criada a rede quebraria o roteamento das tabelas dos subsites.
O que é um prefixo de tabela válido para o AIOS
Um prefixo válido contém apenas letras, números e underline e termina com underline, como a7x9_ ou loja2024_. Caracteres especiais, espaços ou um prefixo sem underline final fazem o plugin recusar a operação antes de tocar no banco.
Preciso deixar o wp-config.php gravável o tempo todo
Não. Deixe gravável apenas durante a troca de prefixo e volte para somente leitura logo em seguida. Manter o arquivo gravável de forma permanente aumenta a superfície de ataque, justamente o oposto do que a ferramenta de segurança pretende.
O que fazer se o site parar de abrir depois de trocar o prefixo
Restaure o backup do banco e do wp-config.php que você fez antes da operação. Em seguida verifique se o usuário do MySQL tem ALTER e se o arquivo é gravável, corrija o que faltava e só então tente a troca novamente.

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