Problema con la base de datos «[ERROR] /usr/sbin/mysqld: Table ‘./tablas/accesslog’ is marked as crashed and should be repaired»

Haciendo una revisión de usuarios en uno de los sitios (que, por cierto, me cago en los putos spammers una y mil veces) vi unos errores en la base de datos.»[ERROR] /usr/sbin/mysqld: Table ‘./tablas/accesslog’ is marked as crashed and should be repaired».

La cosa es que, como esa tabla estaba cascada, no dejaba borrar usuarios, curioso que si que deja darlos de alta…pero bueno. Buscando un poco por ahí encontré algo mas de información sobre el error y la forma de arreglarlo.

Hay varios comandos que se pueden usar para reparar las bases de datos, (desde phpmyadmin se hace de forma gráfica, pero… ojito).

Se puede probar a hacer una reparación genérica de las bases de datos:

mysqlcheck -r -u root -p –all-databases (all-databases para todas o sustituye por el nombre de la tuya). A mi no me funciono, me dijo que la tabla en cuestión estaba cascada y que la marcaba como tal.

Encontré un manual con mas indicaciones.
Al final lo conseguí arreglar usando:

myisamchk /var/lib/mysql/tabla/*.MYI >> /tmp/bbdd_log.txt
La salida son las tablas con errores.

myisamchk -r tabla.MYI

Ojo, tarda un huevo en hacerlo,en mi caso la tabla en cuestión tenia 35.000 entradas (aprox) y tardo mas de 30 min en repararla.

La salida es mas o menos así
:
– recovering (with sort) MyISAM-table ‘tabla.MYI’
Data records: 34514
– Fixing index 1
– Fixing index 2
– Fixing index 3
Data records: 54336