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 ahi encontre 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 consegui 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 asi:
– recovering (with sort) MyISAM-table ‘tabla.MYI’
Data records: 34514
– Fixing index 1
– Fixing index 2
– Fixing index 3
Data records: 54336

Comments are closed.