Comprobación del estado de las tablas de una base de datos mysql

Haciendo uso de mysqlcheck podemos comprobar el estado de las tablas de una, o varias, bases de datos en un servidor mysql. Su uso es muy sencillo:

mysqlcheck base-de-datos -u usuario -p password

Al hacerlo, mysqlcheck nos genera una salida con las tablas de la base de datos indicada y su estado:

base-de-datos.tabla-1 OK
base-de-datos.tabla-2 OK
base-de-datos.tabla-3 OK
base-de-datos.tabla-4
warning : Table is marked as crashed
warning : 2 clients are using or haven't closed the table properly
warning : Size of datafile is: 448416 Should be: 447568
error : Wrong record length 168 of 176 at 87156
error : Corrupt

Si la lista es muy larga la selección de sólo aquellas tablas con problemas puede no ser inmediata. Un modo de verlas sólo a estas es ejecutando:

mysqlcheck base-de-datos -u usuario -p password | grep -v OK$

con lo que seleccionamos sólo las lineas que no terminen en OK, que son las que tienen problemas:

base-de-datos.tabla-4
warning : Table is marked as crashed
warning : 2 clients are using or haven't closed the table properly
warning : Size of datafile is: 448416 Should be: 447568
error : Wrong record length 168 of 176 at 87156
error : Corrupt

Ahí os queda eso 🙂 Ah, un modo de reparar todas las tablas de todas las bases de datos lo podéis encontrar en Shell script to optimize all tables in all databases (MySQL)