Tutorial como mudar o prefixo das tabelas do wordpress

Objetivo

Alterar o prefixo das tabelas do wordpress em um banco de dados já existente.

Requisitos

Ter um banco de dados funcional do wordpress onde deseja alterar o prefixo das tabelas no banco de dados.

Resumo

Os passos para alterar o prefixo de um banco de dados do wordpress já existente são:

  1. Atualizar o arquivo wp-config.php e alterar a linha com o novo prefixo desejado: $table_prefix = ‘wp_‘;
  2. Caso tenha o phpmyadmin instalado, selecione as tabelas e clique na opção: “Replace table prefix” ou “Substituir o prefixo de tabelas“.
  3. Agora é necessário atualizar as referências cruzadas das tabelas do banco, alterar o prefixo anterior (wp_) para o novo (wpNOVO_). Execute as query SQL (podem ser feitas dentro do phpmyadmin também):
    • update wpNOVO_usermeta set meta_key = ‘wpNOVO_capabilities’ where meta_key = ‘wp_capabilities’;
    • update wpNOVO_usermeta set meta_key = ‘wpNOVO_user_level’ where meta_key = ‘wp_user_level’;
    • update wpNOVO_usermeta set meta_key = ‘wpNOVO_autosave_draft_ids’ where meta_key = ‘wp_autosave_draft_ids’;
    • update wpNOVO_options set option_name = ‘wpNOVO_user_roles’ where option_name = ‘wp_user_roles’;

Abaixo teremos um passo a passo descritivo de cada etapa.

Passo a passo de como alterar o prefixo do banco de dados do WordPress

Passo 1 – Inserir o novo prefixo no arquivo wp-config.php

Caso esteja no windows, basta abrir o arquivo wp-config.php no bloco de notas e alterar a linha:

$table_prefix = 'wp_';

Caso esteja realizando a atualização em linha de comando no linux ou mac os, caminhe até o diretório raiz da sua instalação do wordpress e edite o arquivo wp-config.php:

nano wp-config.php

Agora com o editor nano aberto, ande até encontrar a linha:

$table_prefix = 'wp_';

Esta linha indica que todas as tabelas do wordpress começam com o prefixo wp_.

Caso queira um prefixo novo chamado wpNOVO_, basta alterar essa linha para:

$table_prefix = 'wpNOVO_';

Passo 2 – Alterar o prefixo existente no banco de dados

O próximo passo é alterar manualmente o prefixo existente nas tabelas do banco de dados.

Opção 1: Alterar prefixos utilizando phpmyadmin

Caso tenha o phpmyadmin instalado, basta clicar no banco de dados para que as tabelas apareçam ao lado direito.

Agora clique em:

Marcar todos

Ao lado de Marcar todos, clique em:

Com marcados:

E finalmente selecione:

Substituir o prefixo de tabelas

Wordpress - alterar o prefixo de tabelas - selecionar tabelas pelo phpmyadmin

Um modal irá abrir para você selecionar o prefixo antigo atual e o novo prefixo que deseja alterar. Do nosso exemplo o prefixo atual é o original:

wp_

O novo prefixo desejado vai ser:

wpNOVO_

Agora basta clicar em:

Continuar

Wordpress - alterar o prefixo de tabelas - definir prefixo antigo e novo

Opção 2 – Alterar prefixos utilizando query SQL

Caso não tenha o phpmyadmin instalado, basta executar uma query SQL do tipo ALTER TABLE para cada tabela do banco de dados no wordpress. É muito comum que plugins criem tabelas adicionais no banco de dados do wordpress, mas para referência, as tabelas padrão de uma instalação do wordpress e suas respectivas alterações necessárias são:

ALTER TABLE `wp_commentmeta` RENAME `wpNOVO_commentmeta`;
ALTER TABLE `wp_comments` RENAME `wpNOVO_comments`;
ALTER TABLE `wp_links` RENAME `wpNOVO_links`;
ALTER TABLE `wp_options` RENAME `wpNOVO_options`;
ALTER TABLE `wp_postmeta` RENAME `wpNOVO_postmeta`;
ALTER TABLE `wp_posts` RENAME `wpNOVO_posts`;
ALTER TABLE `wp_termmeta` RENAME `wpNOVO_termmeta`;
ALTER TABLE `wp_terms` RENAME `wpNOVO_terms`;
ALTER TABLE `wp_term_relationships` RENAME `wpNOVO_term_relationships`;
ALTER TABLE `wp_term_taxonomy` RENAME `wpNOVO_term_taxonomy`;
ALTER TABLE `wp_usermeta` RENAME `wpNOVO_usermeta`;
ALTER TABLE `wp_users` RENAME `wpNOVO_users`;

Wordpress - alterar o prefixo de tabelas - utilizar query sql para mudar prefixo

A figura acima ilustra uma query SQL executada que tem o mesmo resultado do Passo 2 e Opcão 1 apresentado. Ela pode ser realizada também pelo console do mysql.

Passo 3 – Alterar referências entre tabelas existentes

Por fim, existem também referências entre as tabelas que precisam ser atualizadas. Geralmente apenas as tabelas user_meta e options possuem estas referências. Caso utilize plugins específicos com tais referências ou alguma versão mais nova do wordpress é bom ficar atento.

Caso utilize o phpmyadmin, e caso tenha clicado no banco de dados no menu da esquerda, as seguintes opções irão aparecer no menu superior:

Estrutura | SQL | Procurar | Consulta | Exportar | Importar | Operações | Rotinas | Eventos | Acionadores | Designer

Clique na opção do menu superior chamada:

SQL

Agora insira o seguinte código dentro do campo:

update wpNOVO_usermeta set meta_key = 'wpNOVO_capabilities' where meta_key = 'wp_capabilities';
update wpNOVO_usermeta set meta_key = 'wpNOVO_user_level' where meta_key = 'wp_user_level';
update wpNOVO_usermeta set meta_key = 'wpNOVO_autosave_draft_ids' where meta_key = 'wp_autosave_draft_ids';
update wpNOVO_options set option_name = 'wpNOVO_user_roles' where option_name = 'wp_user_roles';

Agora clique em:

Executar

A query SQL que inseriu irá ser executada e irá buscar as referências do prefixo antigo nas tabelas e realizar a atualização.

Caso não tenha o phpmyadmin, basta executar a query acima no console do mysql que terá o mesmo resultado.

Wordpress - alterar o prefixo de tabelas - alterar referências entre tabelas com o novo prefixo

Conclusão

A mudança do prefixo, das tabelas do wordpress, pode ser necessária em diversas ocasiões: aumentar segurança da instalação, ter várias instâncias do wordpress no mesmo banco, adequar a uma necessidade da organização, etc. O processo é simples e realizado em 3 etapas: atualizar o novo prefixo no wp-config.php, mudar o prefixo no banco e atualizar as referências entre tabelas.

Vinicius Paes
Visão Geral sobre Privacidade (Privacy Overview)

Este site utuliza "cookies" para que possamos oferecer uma melhor experiência de usuário. As informações dos "cookies" são armazenadas em seu navegador e executam funções como reconhecê-lo quando você retorna ao nosso site e ajudar nossa equipe a entender quais seções do site você considera mais interessantes e úteis.