Cómo cambiar el prefijo de la base de datos en WordPress

MySQLPHPphpMyAdminSQLWordPress

La base de datos de WordPress es el lugar en donde se almacenan todos los datos, por lo que es un objetivo habitual para los hackers y scripts malintencionados que escanean los sitios web para encontrar vulnerabilidades. Las tablas de WordPress incorporan por defecto el prefijo wp_ en todas sus tablas, por lo que los atacantes ya saben de antemano las tablas de la base de datos que han de modificar. Podemos cambiar con facilidad el prefijo de las tablas de la base de datos siguiendo estos pasos.

Copia de seguridad

Lo primero es realizar una copia de seguridad de la base de datos, por lo que debemos entrar en phpMyAdmin y realizarla. También podemos utilizar algún método alternativo si lo preferimos.

Cambiar el prefijo de las tablas en el archivo wp-config.php

Conéctate mediante FTP al directorio raíz de tu instalación se WordPress. Lo que vamos a hacer es cambiar el prefijo de las tablas de la base de datos editando el archivo wp-config.php. El nuevo nombre solamente podrá contener letras números y guiones bajos. En este ejemplo vamos a cambiar el prefijo «wp_» por el de «nuevo_«. Buscamos la variable $table _prefix y le asignamos el valor «nuevo_» tal que así:

$table_prefix = 'nuevo_';

Cambiar el nombre de las tablas en la base de datos

Podemos editar la base de datos usando phpMyAdmin. Lo que debemos hacer es cambiar el prefijo de todas las tablas de la base de datos por el nuevo.

Las tablas que WordPress usa por defecto son: wp_commentmeta, wp_commentswp_linkswp_options, wp_postmeta, wp_posts, wp_terms, wp_term_relationships, wp_term_taxonomy, wp_usermeta y wp_users.

tablas-wordpress-actualizar-prefijo

Podemos cambiar el prefijo manualmente o mediante una consulta:

RENAME table `wp_commentmeta` TO `nuevo__commentmeta`;
RENAME table `wp_comments` TO `nuevo__comments`;
RENAME table `wp_links` TO `nuevo__links`;
RENAME table `wp_options` TO `nuevo__options`;
RENAME table `wp_postmeta` TO `nuevo__postmeta`;
RENAME table `wp_posts` TO `nuevo__posts`;
RENAME table `wp_terms` TO `nuevo__terms`;
RENAME table `wp_term_relationships` TO `nuevo__term_relationships`;
RENAME table `wp_term_taxonomy` TO `nuevo__term_taxonomy`;
RENAME table `wp_usermeta` TO `nuevo__usermeta`;
RENAME table `wp_users` TO `nuevo__users`;

Si tenemos algún plugin que utilice alguna tabla personalizada debemos cambiar también su prefijo bien sea manualmente o con otra consulta:

RENAME table `wp_tablaPersonalizada` TO `nuevo__tablaPersonalizada`;

Cambiamos los datos de las tablas de opciones y los datos de usuario

El siguiente paso es cambiar los datos de cualquier campo de la tabla de opciones que use el prefijo «wp_» por el nuevo prefijo. La tabla se llamará ahora «nuevo_options«. Necesitamos cambiar los campos necesarios uno a uno, aunque también podemos filtrarlos mediante la siguiente consulta para cambiarlos posteriormente con más facilidad:

SELECT * FROM `nuevo_options` WHERE `option_name` LIKE '%wp_%'

Lo mismo sucede con los datos de la tabla «wp_userMeta«, ahora llamada «nuevo_userMeta«. Filtramos los campos con la siguiente consulta y reemplazamos cualquier ocurrencia de wp_ por el nuevo prefijo;

SELECT * FROM `nuevo_usermeta` WHERE `meta_key` LIKE '%wp_%'

Finalizando y métodos alternativos

Ahora solamente tenemos que probar el sitio para comprobar que funciona correctamente. Es caso de que falle algo siempre disponemos de la copia de seguridad de la base de datos que hemos realizado.

También podemos utilizar algún Plugin como Sucuru SecurityAll In One WP Security para cambiar el nombre de las tablas, aunque si queremos evitar la instalación de plugins y nuestra prioridad es la minimizar los añadidos, es más recomendable el método manual.


Avatar de Edu Lazaro

Edu Lázaro: Ingeniero técnico en informática, actualmente trabajo como desarrollador web y programador de videojuegos.

👋 Hola! Soy Edu, me encanta crear cosas y he redactado esta guía. Si te ha resultado útil, el mayor favor que me podrías hacer es el de compatirla en Twitter 😊

Si quieres conocer mis proyectos, sígueme en Twitter.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

“- Hey, Doc. No tenemos suficiente carretera para ir a 140/h km. - ¿Carretera? A donde vamos, no necesitaremos carreteras.”