Cómo reparar tablas marcadas como defectuosas o corruptas en MySQL

Desde hace más de un año usábamos el plugin Counterizer para WordPress y así llevar estadísticas del blog y sus lectores, este plugin lo desactivamos hace unos pocos días ya que (entre otras cosas) guardaba en la base de datos más de 600MBs de datos.

Sucede que (antes de desactivar el plugin y limpiar la DB) intenté hacer un dump de la base de datos, o sea, exportarla a .SQL y así descargarla y en la terminal del hosting me apareció el siguiente error:

mysqldump: Got error: 144: Table './dl_database/Counterize_Referers' is marked as crashed and last (automatic?) repair failed when using LOCK TABLES

Por lo que, el dump no se efectuaba y bueno… la solo idea de pensar que la DB de DesdeLinux tenía algún problema me puso los pelos de punta :)

Haciendo un poco de investigación por la web pude aprender a solucionar este problema, al parecer NO es que la base de datos tenga problemas exactamente, simplemente que una tabla está marcada como ‘con problemas’, afortunadamente esto es muy simple de arreglar.

Primero accedamos al servidor MySQL:

mysql -u root -p

Presionamos [Enter] y nos pedirá el password del root del MySQL, lo ponemos y presionamos [Enter] de nuevo.

Este comando es en caso de que el servidor MySQL esté instalado en ese mismo ordenador, si desean conectarse de forma remota a otro servidor MySQL deben agregar a la línea lo siguiente: -h IP-DE-SERVIDOR

Una vez dentro de MySQL le indicaremos qué base de datos usar, por ejemplo el problema según el error de arriba está en la tabla Counterize_Referers de la base de datos  dl_database, por lo que:

use database dl_database;

Y ahora a reparar la base de tabla:

repair table Counterize_Referers;

Noten que al final de estas líneas hay un punto y coma —–»  ;

Una vez ejecutado el comando anterior todo debe haber vuelto a la normalidad, al menos en mi caso ha sido así en más de una ocasión ;)

Luego solo queda volver a ejecutar la instrucción para hacer el dump de la base de datos y listo, nada más.

En fin, hago esto más que otra cosa como un memorandum para mí, pues ya me ha sucedido lo mismo en dos ocasiones y no quiero olvidar las instrucciones para salvarme el día :D

Saludos y espero le resulte de ayuda a alguien más.


KZKG^Gaara

KZKG^Gaara: Usuario de GNU/Linux y administrador de red desde hace algunos años. Intento mantenerme en el lado oscuro de la fuerza, pues es donde está lo divertido de la vida. Administrador y Fundador de todo esto que ven, pero uno más dentro de la familia.


13 comentarios en “Cómo reparar tablas marcadas como defectuosas o corruptas en MySQL

Deja un comentario

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

Puedes usar las siguientes etiquetas y atributos HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Current day month ye@r *

  1. Muy bueno, siempre hay que tener este tipo de articulos a mano por cualquier cos.

    1
  2. Buena KZKGGaara. Hay cosas que el PHPMyAdmin no puede hacer lo que sí puede hacer la consola.

    3
  3. Excelente, me salvó más de una vez.

    Pero pregunto, no sería mysql-u root -p en vez de root -u root -p? Preunto sin ánimo de ofender.

    Gracias!!

    5
  4. Excelente, me salvó más de una vez.
    Pero pregunto, no sería mysql-u root -p en vez de root -u root -p? Pregunto sin ánimo de ofender.
    Gracias

    6
    • LOL!!!! Completamente cierto, mi error LOL!
      Estaba escribiendo y pensando un paso más adelantado, de ahí a que escribiera root en vez de mysql … Gracias por el aviso :)

      7
      • De nada! Perdón por el doble post; lo intente enviar en oportunidades seguidas y me decía que ya existía (yo recargaba la página y no veía nada).
        Saludos.

        8
  5. Google Chrome 27.0.1453.93GNU/Linux x64
    Leproso_IvanLeproso_Ivan

    Esto me viene de pelos ahora que me estoy metiendo con el tema de las DB..

    9
  6. Hola buenas,

    Sin anino de trollear, cada cuanto haces dump de DB?

    10
  7. Hola buenas,

    una pregunta, ¿cada cuánto haces dump de DB? es para saber cuánto tiempo tarda en llegar hasta los 600MB de data

    Un saludo,

    12
    • Ehm… no te entendí muy bien ahora :)
      Antes de que hiciéramos una limpieza en la DB de DesdeLinux esta (o sea, el .sql de la DB) pesaba más de 700MB, porque guardábamos en la DB todas las estadísticas. O sea, desde casi el inicio del blog.

      Ahora estamos usando Google A. por lo que borramos las tablas de estadísticas de la DB, y ahora no llega a los 80MB el .sql

      ¿responde esto a tu pregunta?

      13

Deja un comentario

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

Puedes usar las siguientes etiquetas y atributos HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Current day month ye@r *