Muchas veces las tablas se las bases de datos MySQL se rompen, esta es una forma de chequear su estado y repararlas:
- Deben reemplazar “base-de-datos_1″ por el nombre real de la BD y “laTabla” por el verdadero nombre de la tabla.
- SIEMPRE: hacer un backup de la tabla antes de proceder con la reparación, por las dudas que se cague aún más.
# Conectamos a MySQL desde la consola:
mysql -u root -p |
# Nos movemos hacia la BD que tiene la tabla rota
mysql> use base-de-datos_1; |
# Verificamos el estado de la tabla:
mysql> check table laTabla; +------------------------------+-------+----------+------------------------------------------------------------------------------------+ | Table | Op | Msg_type | Msg_text | +------------------------------+-------+----------+------------------------------------------------------------------------------------+ | base-de-datos_1.laTabla | check | error | Table './base-de-datos_1/laTabla' is marked as crashed and should be repaired | +------------------------------+-------+----------+------------------------------------------------------------------------------------+ 1 row in set (0.00 sec) |
# La reparamos
mysql> repair table laTabla; |
# Atención: si esto no arregla la tabla rota, lo que se debe hacer es lo siguiente:
# Salimos del shell mysql con “quit;” y volvemos al shell Linux como root, allí tipeamos lo siguiente:
[root@hostname.server.com]# myisamchk -r /var/lib/mysql/base-de-datos_1/laTabla.MYI - recovering (with sort) MyISAM-table '/var/lib/mysql/base-de-datos_1/laTabla.MYI' Data records: 43071 - Fixing index 1 - Fixing index 2 - Fixing index 3 - Fixing index 4 [root@hostname.server.com] |
# Y si esto también falla, vamos a ir con otra variante al usar “–safe-recover”, esta opción demora más, pero es la recomendada si la anterior falla:
myisamchk -r --safe-recover /var/lib/mysql/base-de-datos_1/laTabla.MYI |