ART PROJECT GROUP:
C/ Álvaro Mutis, 1. 4º G. C.P: 29651. Mijas. Málaga. España.
Teléfono: +34 665 058 218.

¿Cómo cambiar el prefijo de las tablas de la base de datos de WordPress?

  • WordPress - Blog

¿Cómo cambiar el prefijo de las tablas de la base de datos de WordPress?

Una buena medida de seguridad en WordPress es cambiar el prefijo de la base de datos, y aunque a priori parece harto complicado, la verdad es que es muy sencillo.

Lo primero que vamos a necesitar es tener acceso a la base de datos a través de phpMyAdmin, por ejemplo, o de algún programa específico como MySQL Workbench o MySQL Utilities. Aunque el primero suele estar presente en todos los paneles de administración, y si no siempre podemos subirlo a nuestro servidor.

Una vez disponemos de acceso a la base de datos, vamos realizar dos consultas SQL para conseguir una tercera que será la encargada de cambiar el prefijo de las tablas de la base de datos de WordPress.

Las consultas que vamos a lanzar son:

SET group_concat_max_len = 99999;
SELECT CONCAT('RENAME TABLE ', GROUP_CONCAT('`', TABLE_SCHEMA, '`.`', TABLE_NAME, '` TO `', TABLE_SCHEMA, '`.`nuevo_prefijo_', substr(TABLE_NAME, 4), '`')) AS q FROM `information_schema`.`Tables` WHERE TABLE_SCHEMA = 'nombre_de_la_base_de_datos';

La primera se encargará de que la consulta generada salga completa. Si se cortara aumenta el valor 9999. La segunda se encargará de construir la nueva consulta, y aquí tendrás que especificar el nuevo prefijo y el nombre de la base de datos. De esta forma si el nuevo prefijo va a ser artprojectgroup, por ejemplo, y la base de datos se llama wordpress, la consulta quedaría tal que así:

SET group_concat_max_len = 99999;
SELECT CONCAT('RENAME TABLE ', GROUP_CONCAT('`', TABLE_SCHEMA, '`.`', TABLE_NAME, '` TO `', TABLE_SCHEMA, '`.`artprojectgroup_', substr(TABLE_NAME, 4), '`')) AS q FROM `information_schema`.`Tables` WHERE TABLE_SCHEMA = 'wordpress';

Y el resultado que obtendríamos sería algo como este:

RENAME TABLE `wordpress`.`wp_commentmeta` TO `wordpress`.`artprojectgroup__commentmeta`,`wordpress`.`wp_comments` TO `wordpress`.`artprojectgroup__comments`,`wordpress`.`wp_contact_form_7` TO `wordpress`.`artprojectgroup__contact_form_7`,`wordpress`.`wp_links` TO `wordpress`.`artprojectgroup__links`,`wordpress`.`wp_options` TO `wordpress`.`artprojectgroup__options`,`wordpress`.`wp_postmeta` TO `wordpress`.`artprojectgroup__postmeta`,`wordpress`.`wp_posts` TO `wordpress`.`artprojectgroup__posts`,`wordpress`.`wp_term_relationships` TO `wordpress`.`artprojectgroup__term_relationships`,`wordpress`.`wp_term_taxonomy` TO `wordpress`.`artprojectgroup__term_taxonomy`,`wordpress`.`wp_terms` TO `wordpress`.`artprojectgroup__terms`,`wordpress`.`wp_usermeta` TO `wordpress`.`artprojectgroup__usermeta`,`wordpress`.`wp_users` TO `wordpress`.`artprojectgroup__users`,`wordpress`.`wp_wfBadLeechers` TO `wordpress`.`artprojectgroup__wfBadLeechers`,`wordpress`.`wp_wfBlocks` TO `wordpress`.`artprojectgroup__wfBlocks`,`wordpress`.`wp_wfBlocksAdv` TO `wordpress`.`artprojectgroup__wfBlocksAdv`,`wordpress`.`wp_wfConfig` TO `wordpress`.`artprojectgroup__wfConfig`,`wordpress`.`wp_wfCrawlers` TO `wordpress`.`artprojectgroup__wfCrawlers`,`wordpress`.`wp_wfFileMods` TO `wordpress`.`artprojectgroup__wfFileMods`,`wordpress`.`wp_wfHits` TO `wordpress`.`artprojectgroup__wfHits`,`wordpress`.`wp_wfHoover` TO `wordpress`.`artprojectgroup__wfHoover`,`wordpress`.`wp_wfIssues` TO `wordpress`.`artprojectgroup__wfIssues`,`wordpress`.`wp_wfLeechers` TO `wordpress`.`artprojectgroup__wfLeechers`,`wordpress`.`wp_wfLockedOut` TO `wordpress`.`artprojectgroup__wfLockedOut`,`wordpress`.`wp_wfLocs` TO `wordpress`.`artprojectgroup__wfLocs`,`wordpress`.`wp_wfLogins` TO `wordpress`.`artprojectgroup__wfLogins`,`wordpress`.`wp_wfNet404s` TO `wordpress`.`artprojectgroup__wfNet404s`,`wordpress`.`wp_wfReverseCache` TO `wordpress`.`artprojectgroup__wfReverseCache`,`wordpress`.`wp_wfScanners` TO `wordpress`.`artprojectgroup__wfScanners`,`wordpress`.`wp_wfStatus` TO `wordpress`.`artprojectgroup__wfStatus`,`wordpress`.`wp_wfThrottleLog` TO `wordpress`.`artprojectgroup__wfThrottleLog`,`wordpress`.`wp_wfVulnScanners` TO `wordpress`.`artprojectgroup__wfVulnScanners`

Una vez obtenida esta nueva consulta, lo único que tenemos que hacer es ejecutarla y ya tendremos la primera parte finalizada.

Para evitar que aparezca el mensaje “No tiene los permisos necesarios para acceder a esta página” que nos impedirá acceder al Panel de Control de nuestra instalación de WordPress, debemos ejecutar dos nuevas consultas que solucionarán el problema:

UPDATE `nuevo_prefijo_usermeta` SET `meta_key` = REPLACE(`meta_key`, 'wp_', 'nuevo_prefijo_');
UPDATE `nuevo_prefijo_options` SET `option_name` = 'nuevo_prefijo_user_roles' WHERE `option_name` = 'wp_user_roles';

En nuestro caso:

UPDATE `artprojectgroup_usermeta` SET `meta_key` = REPLACE(`meta_key`, 'wp_', 'artprojectgroup_');
UPDATE `artprojectgroup_options` SET `option_name` = 'artprojectgroup_user_roles' WHERE `option_name` = 'wp_user_roles';

Una vez renombradas las tablas, y arreglado el más que probable problema de los usuarios, debemos indicar los cambios al propio WordPress, ya que si no no funcionará nada. Eso se hace editando una única línea en el archivo de configuración de WordPress. Este archivo se llama wp-config.php y se encuentra en el directorio raíz de nuestra instalación de WordPress. Podemos acceder a él vía FTP utilizando una aplicación específica como FileZilla, por ejemplo.

Una vez abierto el archivo de configuración debemos buscar la línea:

$table_prefix  = 'wp_';

Y modificarla, en nuestro caso, por:

$table_prefix  = 'artprojectgroup_';

Con estos pequeños ajustes conseguiremos mejorar, y mucho, la seguridad de nuestra instalación de WordPress.

Otro día vamos a cerrar el tema de la mejora de la seguridad con la instalación de un par de plugins que nos van a hacer casi inexpugnable nuestra instalación de WordPress. Y ojo que es casi, ya que la seguridad total en Internet no existe.

2017-03-27T18:07:36+00:00 martes, 2 de julio de 2013|Categorías: Art Project Group|Etiquetas: , , , , , , , , |Sin comentarios

Deje un comentario

Comparte esto con un amigo