UA-51298262-10 Skip to main content
WordPress

Reparar tablas MySQL WordPress

By julio 24, 2026No Comments
Reparar tablas MySQL WordPress

Por qué se corrompen las tablas de la base de datos

Antes de ver cómo reparar tablas MySQL, conviene entender qué está pasando realmente. Las bases de datos no se echan a perder por arte de magia. Siempre hay un detonante. Casi siempre es una interrupción brusca mientras se escribía algo. En WordPress, esto ocurre a menudo cuando una actualización de plugins, temas o del propio núcleo se queda a mitad de camino. También lo he visto después de migrar un sitio a un servidor nuevo o cuando el servidor se apaga de golpe por falta de recursos.

Otra causa clásica es el motor de almacenamiento. Antiguamente, MyISAM solía dar problemas si no se cerraba el servidor «limpiamente». Hoy en día la mayoría usa InnoDB, que es más robusto. Aun así, muchos plugins viejos o configuraciones que arrastran desde hace años siguen teniendo tablas en MyISAM. Saber qué motor usan tus tablas es clave. El enfoque para arreglarlo cambia de uno a otro.

Dato técnico: InnoDB trae una recuperación automática tras fallos (crash-recovery), por lo que se corrompe menos que MyISAM. Pero si el archivo físico .ibd está dañado, toca meter mano.

Síntomas de una tabla corrupta en WordPress

Darse cuenta a tiempo puede salvarte de un dolor de cabeza. Y no siempre verás el famoso «Error establishing a database connection». A veces la corrupción es sutil. Solo rota una pieza del sitio. Estate atento a estas señales:

  • La web carga, pero falta el contenido: las entradas o páginas están en blanco.
  • No puedes entrar al panel de administración (/wp-admin).
  • Al intentar publicar o actualizar un artículo, aparecen errores extraños.
  • La base de datos se come los recursos del servidor y todo va lento.

Si revisas los registros de errores (error_log) del servidor, quizá veas entradas que dicen «Corrupt» o «Crashed» ligadas a archivos como wp_posts.MYI. Ahí ya no hay duda. Tienes que actuar ya si no quieres perder datos.

Método 1: Reparación mediante WP-CONFIG

WordPress lleva una función nativa que mucha gente olvida. Sirve para hacer mantenimiento básico sin tocar phpMyAdmin ni la consola. Es lo más seguro si no eres experto, porque te evitas liarte con comandos SQL complejos.

Para activarla, edita el archivo wp-config.php que está en la raíz de tu instalación. Haz esto:

  1. Entra por FTP o usa el administrador de archivos de tu hosting (cPanel, Plesk, etc.).
  2. Localiza wp-config.php, descárgalo como copia de seguridad y ábrelo con un editor de texto.
  3. Busca la línea /* That’s all, stop editing! */. Justo antes, mete este código PHP:

define( ‘WP_ALLOW_REPAIR’, true );

  1. Guarda, sube el archivo y reemplaza el original.

Al activar esto, visita esta URL en tu navegador: tu-dominio.com/wp-admin/maint/repair.php. Verás una pantalla sencilla con dos opciones:

  • Repair Database: Arregla las tablas dañadas intentando recuperar todo lo posible.
  • Repair and Optimize Database: Además, optimiza las tablas para que rindan mejor. Tarda un poco más.

Pulsa la que quieras. El proceso solo y te dirá qué tablas se han arreglado y cuáles no.

Advertencia de seguridad: Esta página no lleva contraseña. Cualquiera que sepa que está ahí puede ejecutarla. Así que, cuando termines, borra ya mismo la línea define( 'WP_ALLOW_REPAIR', true ); del archivo wp-config.php. No lo dejes ahí.

Método 2: Uso de phpMyAdmin para reparar tablas MySQL

Si lo anterior no funciona o no puedes entrar al panel de WordPress, toca usar phpMyAdmin. Es la herramienta estándar para gestionar MySQL. Te da control directo y funciona bien tanto para MyISAM como para algunas cosas de InnoDB.

Pasos detallados en phpMyAdmin

  1. Entra a tu panel de hosting (cPanel) y busca «phpMyAdmin» en la sección de bases de datos.
  2. A la izquierda, elige la base de datos de tu WordPress. Si no sabes el nombre, mira en wp-config.php la constante DB_NAME.
  3. Verás todas las tablas (ej. wp_options, wp_posts). Marca las casillas al inicio de cada fila. Suelen haber un enlace «Check All» abajo para hacerlo rápido.
  4. En el menú «With selected:», elige Repair table.

phpMyAdmin ejecutará el comando REPAIR TABLE nombre_tabla por cada una. La pantalla se actualizará y verás el estado. Busca mensajes como «OK» o «The storage engine for the table doesn’t support repair».

Si usas InnoDB, es probable que te salga ese segundo mensaje. Es normal. Significa que este motor gestiona la integridad distinto. Si hay corrupción en InnoDB, la solución suele ser volcar los datos (dump) y reimportarlos, o reiniciar el servicio MySQL para forzar la recuperación de fallos.

Comandos SQL directos

Para usuarios más avanzados que prefieren la consola o la pestaña «SQL», se puede hacer a mano. Este es el comando que se ejecuta por detrás:

REPAIR TABLE wp_posts;

Cambia wp_posts por la tabla afectada. Si quieres arreglar todas de golpe, la sentencia SQL sería:

REPAIR TABLE wp_options, wp_users, wp_posts, wp_comments, wp_postmeta, wp_usermeta;

Método 3: Solución mediante línea de comandos (SSH)

Para los que administran VPS o servidores dedicados, la terminal es lo más rápido. Es ideal cuando phpMyAdmin se queda colgado por timeout porque la base de datos es enorme (gigas y gigas de información).

Entra por SSH y luego a la consola de MySQL con un usuario con permisos de superusuario:

mysql -u root -p

Dentro, selecciona tu base de datos:

USE nombre_base_datos;

Para saber qué tablas están mal, haz un chequeo:

CHECK TABLE wp_posts;

Si dice que está corrupta, lanza la reparación:

REPAIR TABLE wp_posts;

Si quieres reparar todas sin escribir una por una, puedes usar un truco de bash en la terminal de Linux (antes de entrar a MySQL) para generar los comandos:

mysql -u root -p -e «USE tu_base_de_datos; SHOW TABLES;» | awk ‘{print «REPAIR TABLE «$1″;»}’ | grep -v «^REPAIR TABLE Tables_in»

Este comando lista las tablas y construye la sintaxis de reparación para cada una. Luego solo tienes que copiar y pegar dentro de la consola MySQL.

Prevención y mantenimiento futuro

Reparar es reaccionar. Para no estar siempre apagando fuegos, mejor prevenir. La regla de oro: copias de seguridad (backups) automatizadas diarias. Si una tabla se rompe para siempre, solo un respaldo reciente te sacará del apuro.

Asegúrate también de que tu hosting tenga recursos. Si falta RAM, el sistema operativo «mata» (kill) el proceso MySQL mientras escribe. Deja los archivos a medias y, zas, corrupción. En RedServicio solemos revisar los logs de MySQL (/var/log/mysql/error.log) para ver errores de «Out of memory».

Otra buena costumbre es optimizar la base de datos a menudo. Usa plugins de caché y limpieza para borrar revisiones viejas, spam y transientes caducados. Menos filas, menos riesgo de que algo falle.

Preguntas frecuentes

¿Puedo usar un plugin para esto?
Sí, hay cosas como «WP-DBManager» o «Database Repair» que lo hacen desde el panel de WordPress. El problema es si el error no te deja cargar WordPress. Entonces no podrás activarlos y tocará usar wp-config.php o phpMyAdmin.

¿Es seguro borrar tablas con errores?
Nunca. Borrar una tabla en WordPress es perder todo lo de ahí (por ejemplo, borrar wp_posts es borrar todo tu contenido). Intenta reparar primero.

Conclusión

Saber reparar tablas MySQL es una de esas habilidades que todo administrador web debería tener. Ver que los datos se han corrompido da miedo, pero si tienes las herramientas y vas paso a paso, casi todo se recupera sin perder nada. Tienes varias salidas: activar el modo reparación de WordPress, usar phpMyAdmin o tirar de comandos por SSH.

Lo dicho: prevenir es mejor que curar. Mantén el sitio, plugins y PHP al día, y haz backups. Si tras probar esto el problema sigue o no te ves capaz de tocar la base de datos, no arriesgues. En RedServicio (redservicio.net) tenemos expertos listos para diagnosticar y arreglar estos problemas. Tu web volverá a estar operativa en tiempo récord.