Alterar o prefixo do banco de dados do WordPress: 3 métodos fáceis

Para alterar o prefixo das tabelas do banco de dados do WordPress, edite $table_prefix no wp-config.php, renomeie cada tabela do banco de dados para o novo prefixo e atualize as chaves prefixadas dentro de wp_options e wp_usermeta. O método com plugin é o mais rápido e seguro para a maioria dos sites; o SQL no phpMyAdmin ou Adminer oferece controle total em bancos de dados maiores. Sempre faça um backup do seu banco de dados primeiro.

Alterar o prefixo das tabelas do banco de dados do WordPress é uma forma simples, porém eficaz, de aumentar a segurança do seu site. Por padrão, o WordPress atribui o prefixo de tabela wp_, tornando-o um alvo comum para hackers que tentam ataques de injeção de SQL. Modificar esse prefixo pode ajudar a proteger seu banco de dados contra essas ameaças.

Qual método você deve usar?

Método Requer Nível de risco Melhor para
Plugin acesso ao wp-admin, wp-config.php com permissão de escrita Baixo A maioria dos sites; usuários não técnicos
SQL com phpMyAdmin acesso ao cPanel / phpMyAdmin Médio Hosts que oferecem o phpMyAdmin
SQL com Adminer acesso ao banco de dados via Adminer Médio Administração de banco de dados em arquivo único

Os três alteram as mesmas três coisas — o prefixo no wp-config.php, os nomes das tabelas e as chaves prefixadas em wp_options e wp_usermeta. Eles diferem apenas na ferramenta que você usa para fazer isso.

Toda ação em um site WordPress está interligada ao banco de dados:

How Databases work in WordPress.
This image demonstrates how Databases work in WordPress.

Por que você deve alterar o prefixo de tabela do WordPress?

Alterar o prefixo de tabela padrão wp_ ajuda a:

  • Reduzir o risco de ataques de injeção de SQL
  • Tornar mais difícil para os invasores adivinharem os nomes das tabelas
  • Adicionar uma camada extra de segurança ao seu site WordPress

É uma etapa de fortalecimento feita uma única vez. Um prefixo personalizado, por si só, não detém um invasor determinado, mas frustra os scripts automatizados que assumem os nomes padrão wp_ — e esses scripts representam a maior parte do que atinge um banco de dados WordPress.

Faça um backup do seu banco de dados antes de começar

Before making any changes, create a full backup of your WordPress database using phpMyAdmin, a plugin like WP Staging, or a command-line tool.

Changing the WordPress database prefix can be a critical task, and it’s not always easy. You must ensure you don’t break your website by changing the WordPress table prefix.

Before changing the database prefix, we recommend doing it on a staging site. So you can check thoroughly if the update works and can safely push your staging site to the production site without any risk of data loss after changing the DB prefix.

A staging site is a copy of your live site, so you can do different changes/testing and make those changes live with a single click.

You can create a free staging site with WP STAGING.

Ao instalar o WordPress, um dos erros mais comuns é esquecer de alterar o prefixo do banco de dados, o que deixa a porta aberta para injeções de SQL automatizadas. Tomar medidas preventivas é fundamental para proteger seu site contra invasões. Um prefixo renomeado afeta todas as tabelas, portanto um backup atual é a sua rede de segurança caso uma etapa dê errado — você pode fazer backup e restaurar seu site WordPress em minutos antes de fazer qualquer alteração.

Como alterar o prefixo do banco de dados do WordPress?

Siga este guia passo a passo para renomear o prefixo do banco de dados do WordPress com segurança. Existem três opções:

  1. Usar um plugin para alterar o prefixo das tabelas do banco de dados.
  2. Renomear o prefixo com uma consulta SQL no Adminer.
  3. Renomear o prefixo com uma consulta SQL no phpMyAdmin.

Método 1: Alterar o prefixo das tabelas com um plugin

First, we recommend you take a backup of your website (either with the backup feature of WP STAGING | PRO or manually through CPanel) to avoid any mishappening caused by installing a plugin.

Um plugin é a opção mais rápida e de menor risco porque edita o wp-config.php, renomeia as tabelas e atualiza as chaves prefixadas de options e usermeta para você. Aqui estão as etapas:

  1. Vá para o painel do WordPress.
  2. Vá para a aba "Plugins" e clique em "Adicionar novo".
  3. Pesquise por Brozzme DB Prefix & Tools Add-ons no repositório de plugins do WordPress.
  4. Clique no botão Instalar agora para instalar o Brozzme DB Prefix & Tools Add-on no seu site.
  5. Clique no botão ativar para ativar este plugin.
updatewp database prefix via plugin

O plugin está ativado e podemos começar a trabalhar imediatamente na alteração do prefixo do banco de dados do WordPress.

  1. Vá para Ferramentas e clique em DB Prefix. Você pode ver o prefixo atual do seu banco de dados e alterá-lo para um novo.
wordpress database prefix

Se o seu arquivo wp-config.php não tiver permissão de escrita, você receberá uma mensagem de erro, porque o plugin não consegue alterar o prefixo do banco de dados no arquivo wp-config.php. Corrija as permissões do arquivo (ou edite o wp-config.php manualmente, conforme mostrado no Método 2) e tente novamente.

Você concluiu ao clicar no botão "Change DB Prefix".

Método 2: Alterar o prefixo com SQL no Adminer

Passo 1: Alterar o prefixo das tabelas no wp-config.php

Altere o valor do prefixo das tabelas no arquivo wp-config.php na pasta raiz do diretório do WordPress.

Para editar o wp-config.php, faça login via FTP ou SFTP usando o FileZilla ou qualquer outro cliente FTP. Você pode encontrar seus dados de FTP no cPanel (dependendo do seu host — alguns usam um painel personalizado em vez do cPanel). Consulte o guia do WordPress para editar o wp-config.php para a referência completa.

Procure por esta linha no arquivo wp-config.php:

$table_prefix = 'wp_testing123_';

 
This picture shows where the table prefix can be found in the wp-config.php file.
It should look like this in the wp-config file:
This picture shows how the updated line looks like.
That is what the updated line should look like.

Um prefixo pode conter apenas números, letras e sublinhados. Depois de fazer a alteração no wp-config.php, salve-a.

Passo 2: Renomear as tabelas do banco de dados

Se você estiver usando o Adminer, localize o botão de comando SQL no canto superior esquerdo e selecione-o.

This picture shows a screenshot of where to find the SQL command button on Adminer
Where to find the SQL command button

A consulta SQL abaixo altera o prefixo das tabelas do WordPress em um site existente. Atualize as propriedades SET conforme suas necessidades:

  • nome do banco de dados
  • oldprefix_
  • newprefix_

Esta é a consulta SQL:

sql
SET @database  = "<strong>databasename</strong>";
SET @oldprefix = "<strong>oldprefix_</strong>";
SET @newprefix = "<strong>newprefix_</strong>";
 
SELECT
    concat(
        "RENAME TABLE ",
        TABLE_NAME,
        " TO ",
        replace(TABLE_NAME, @oldprefix, @newprefix),
        ';'
    ) AS "SQL" FROM information_schema.TABLES WHERE TABLE_SCHEMA = @database;

Depois de personalizar a consulta, você obterá algo assim:

A SQL query to update the WordPress database Prefix
Use this SQL query to update the WordPress database Prefix

Execute essa consulta. Ela gera um segundo conjunto de instruções RENAME, como este:

RENAME oldprefix_options to newprefix_options;
RENAME oldprefix_users to newprefix_users;

Copie essas instruções e execute-as para renomear as tabelas com seus novos nomes. (RENAME TABLE é MySQL padrão — consulte a referência MySQL RENAME TABLE.)

Use this SQL query to rename WordPress database tables
Use this SQL query to rename WordPress database tables

Passo 3: Renomear o prefixo na tabela usermeta

Após renomear as tabelas, substitua os valores prefixados em *_usermeta e *_options com as consultas abaixo. Não se esqueça de atualizar as strings destacadas.

Para substituir os valores na tabela *_usermeta, use esta consulta:

SQL
UPDATE `newprefix_usermeta`
SET meta_key = REPLACE(meta_key, 'oldprefix_', 'newprefix_')
WHERE meta_key LIKE 'oldprefix_%';
Use this SQL query to rename the table prefix in table wp_usermeta
Use this SQL query to rename the prefix in table wp_usermeta

Passo 4: Atualizar o prefixo na tabela wp_options

A última etapa é substituir os valores na tabela *_options. Use esta consulta:

SQL
UPDATE wp_options SET option_name = replace(option_name, 'wp_', 'new_') WHERE option_name LIKE 'wp_%';
This picture shows the sql queries to replace the values in the options table
Execute this query to replace the values in the options table.

Isso é tudo sobre o método com Adminer.

Método 3: Alterar o prefixo com SQL no phpMyAdmin

Passo 1: Alterar o prefixo das tabelas no wp-config.php

Altere o prefixo das tabelas no arquivo wp-config.php na pasta raiz do diretório do WordPress.

Para editar o wp-config.php, faça login via FTP ou SFTP usando o FileZilla ou qualquer outro cliente FTP. Você pode encontrar seus dados de FTP no cPanel (dependendo do seu host — alguns usam um painel personalizado em vez do cPanel).

Encontre esta linha no arquivo wp-config.php:

$table_prefix = 'wp_testing123_';

Um prefixo pode conter apenas números, letras e sublinhados. Depois de fazer a alteração no wp-config.php, salve-a.

Passo 2: Renomear as tabelas do banco de dados

Se você estiver usando o cPanel, abra o phpMyAdmin. No lado esquerdo, você pode ver seus bancos de dados. Se você não estiver usando o cPanel, entre em contato com seu host para obter acesso ao banco de dados do seu site. A documentação do phpMyAdmin cobre acesso e login se você for iniciante.

Selecione o banco de dados cujo prefixo você definiu no wp-config.php e, em seguida, faça o seguinte:

  1. Selecione o banco de dados.
  2. Marque a caixa de seleção "Marcar todos" para selecionar todas as tabelas.
  3. Abra o menu suspenso e selecione "Substituir prefixo da tabela".
change wordpress table prefix
  1. Substitua o prefixo antigo pelo novo prefixo.
update wordpress database prefix

Após inserir o novo prefixo, clique em Continuar para alterar o prefixo em todas as tabelas.

Passo 3: Renomear o prefixo na tabela options

Pesquise pelo prefixo wp_ na tabela options usando esta consulta:

SQL
SELECT * FROM `wp_testing123_options` WHERE `option_name` LIKE '%wp_%'

Substitua todos os prefixos antigos pelo novo prefixo.

Replace old table prefix with new prefixes by using SQL query.

Passo 4: Atualizar o prefixo na tabela usermeta

Pesquise por wp_ como prefixo na tabela usermeta e substitua-o usando esta consulta:

SQL
SELECT * FROM `wp_testing123_usermeta` WHERE `meta_key` LIKE '%wp_%'
database prefix of wordpress site

Como alternativa, se você quiser alterar o prefixo do banco de dados com uma única consulta ao banco de dados, pode usar esta consulta em um site WordPress existente:

SQL
SET @database = "database_name";
SET @old_prefix = "old_prefix_";
SET @new_prefix = "new_prefix_";

SELECT concat "RENAME TABLE ", TABLE_NAME, " TO", replace(TABLE_NAME, @old_prefix, @new_prefix),';') AS "SQL" FROM information_schema.TABLES WHERE TABLE_SCHEMA = @database;

Essa consulta cria uma segunda consulta que renomeia todos os prefixos das tabelas para os novos. Após executá-la, você ainda precisa substituir os valores prefixados em wp_usermeta e wp_options com as consultas abaixo:

SQL
UPDATE `wp_testing123_usermeta`
SET meta_key = REPLACE(meta_key, 'wp_', 'new_')
WHERE meta_key LIKE 'wp_%';

UPDATE wp_options SET option_name = replace(option_name, 'wp_', 'new_') WHERE option_name LIKE 'wp_%';

Isso é tudo — esse é o método manual para alterar o prefixo do banco de dados.

Bloqueado fora do wp-admin após renomear o prefixo?

Essa é, de longe, a falha mais comum ao renomear o prefixo das tabelas do WordPress. Nos tickets de suporte do WP STAGING, quase sempre se resume a uma chave prefixada que foi renomeada nas tabelas, mas esquecida dentro dos dados. Siga esta lista de verificação em ordem:

  1. Você atualizou o wp-config.php? O valor de $table_prefix deve corresponder exatamente aos novos nomes das tabelas. Uma divergência aqui é a causa habitual de "Error establishing a database connection" ou de um loop de login.
  2. Você atualizou a chave capabilities em wp_usermeta? A linha wp_capabilities deve ser renomeada para newprefix_capabilities. Se ela ainda usar o prefixo antigo, o WordPress não consegue ler suas funções e bloqueia seu acesso.
  3. Você atualizou a chave user level em wp_usermeta? Renomeie wp_user_level para newprefix_user_level pelo mesmo motivo.
  4. Você atualizou a chave user roles em wp_options? Renomeie wp_user_roles para newprefix_user_roles. O WordPress lê as definições de funções daqui no momento do login.

As chaves a verificar, por tabela:

Na tabela wp_options:

  • wp_user_roles

Na tabela wp_usermeta:

  • wp_capabilities
  • wp_user_level

Após renomear essas chaves para usar o mesmo prefixo das suas tabelas, você conseguirá fazer login novamente. Se ainda estiver bloqueado, restaure o backup que você fez no início e repita as etapas.

Perguntas frequentes

É seguro alterar o prefixo do banco de dados do WordPress em um site no ar?

É seguro se você fizer um backup do banco de dados primeiro e atualizar todos os lugares em que o prefixo aparece: wp-config.php, os nomes das tabelas e as chaves prefixadas em wp_options e wp_usermeta. O método com plugin lida com tudo isso automaticamente, e é por isso que é a opção de menor risco. Teste primeiro em uma cópia de staging, se possível.

Por que estou recebendo "Error establishing a database connection" após a alteração?

O $table_prefix no wp-config.php não corresponde mais aos nomes das suas tabelas. Abra o wp-config.php e confirme se o prefixo corresponde exatamente às tabelas renomeadas, incluindo o sublinhado final.

Preciso alterar o prefixo em um site existente ou apenas no momento da instalação?

Você pode fazer isso a qualquer momento. Alterá-lo na instalação é mais simples porque não há dados para migrar, mas os três métodos acima também funcionam em um site existente.

Um prefixo personalizado pode quebrar plugins?

Pode, se um plugin codificar wp_ de forma fixa em vez de ler o prefixo configurado pelo WordPress. Plugins bem desenvolvidos usam o prefixo informado pelo WordPress, então continuam funcionando. Após a alteração, navegue pelos seus principais plugins para confirmar.

Conclusão

Alterar o prefixo das tabelas do WordPress é uma medida de segurança simples, porém eficaz. Quer você use phpMyAdmin, um plugin ou scripts SQL, sempre faça um backup do seu banco de dados antes de fazer alterações. Esse pequeno ajuste pode ajudar bastante a proteger seu site WordPress.

Artigos relacionados

Rene Hermenau

Autor: Rene Hermenau

Sobre o autor: René Hermenau é o fundador do WP STAGING. Ele trabalha com backups do WordPress, ambientes de staging, migrações, gestão de bases de dados e fluxos de implantação seguros.