Abrí mi blog y me encontré un aterrador error que decía: wp_comment corrupted. Exactamente así le pasó al creador del tutorial mas corto y directo que me sirvió para resolver el problema.
Introducción
Esto no es un problema con el que te puedas encontrar fácilmente, pero dada mis situaciones con mis recursos limitados, era obvio que iba a aparecer algún día. Por supuesto, no sabia que este error precisamente era el que vendría, pero si se andan cayendo los servicios por el oom Killer, algo malo iba a pasar.
Hay muchas razones por las que se corrompen las tablas de MySQL. Entre ellas, están fallos físicos, (corrupción de memoria, fallos de energía, sectores dañados), fallos de causas humanas (cierres incorrectos del servidor) o fallos de software (fallos de sistema operativo, fallos en el mismo MySQL o el uso de herramientas de terceros para acceder y modificar los datos). Por supuesto, el malware es una importante causa de fallos de este tipo.
Solución
No le voy a dar mas vueltas por si llegaste buscando la solución. El autor original no lo hizo…¡en el 23 septiembre del 2008! (17 años hasta la publicación de este post).
- Ejecuta el cliente mysql (o mariadb).
mysql -u your_wordpress_user -p - Cambia a la base de datos de tu instancia de wordpress.
use your_wordpress_database - Ejecuta el comando
repair table wp_comments
¿Como funciona el comando Repair?
Una tabla de MySQL se repara mediante un análisis que identifica y corrige inconsistencias o bloques corruptos en los datos, utilizando herramientas como el comando REPAIR TABLE o utilidades como mysqlcheck o herramientas de terceros, que reescriben los archivos de la tabla para restaurar su integridad y funcionamiento. El proceso implica detectar los errores, reconstruir la estructura y, finalmente, restaurar la tabla a un estado funcional. Recuerda que a veces puedes perder datos en el proceso de recuperación. Ten en cuenta que esto puede causar graves conflictos pues MySQL/MariaDB es una base de datos relacional. Recuperar la tabla no significa necesariamente que pueda volver a funcionar como antes. Es mas una operación de rescate y deberás tener en cuenta lo que necesitas hacer con este rescate.
Una vez identificados los problemas, la tabla se reconstruye. Este proceso puede incluir:
- Eliminar datos corruptos: Si los datos están irrecuperables, pueden ser descartados para permitir que el resto de la tabla se reconstruya.
- Reescribir los archivos de la tabla: El sistema genera nuevos archivos de tabla que contienen una versión corregida de la información, reparando la estructura y la integridad.
Puedes utilizar estas dos herramientas nativas para la reparación y verificación:
- REPAIR TABLE nombre_tabla;: Este comando es la forma nativa de reparar una tabla dañada en MySQL.
- CHECK TABLE nombre_tabla;: Se usa para verificar si una tabla tiene errores.
Por supuesto, puedes usar otras herramientas como phpMyAdmin, que da la opción de reparar la tabla desde una interfaz web o los paneles de control de hosting (cpanel, Plesk, etc.) que ofrecen versiones simplificadas de este proceso.
Conclusiones
No le des mas vueltas. Probablemente estés usando este comando porque no tenias un respaldo a mano. O simplemente querías probar el comando por si podías ahorrarte algo de trabajo. Mi único consejo es que siempre tengas a mano el respaldo de tus bases de datos para evitar sustos innecesarios. Para cosas pequeñas puedes usar soluciones básicas, pero para cosas mas profesionales, tal vez y lo mejor sea que pienses en algo mas completo.


