Este artículo explica cómo verificar si su base de datos está dañada en MySQL®. ¿Por qué ocurre corrupción en una base de datos? Puede ocurrir debido al hardware, específicamente fallas basadas en discos o cuando un disco está lleno.
Síntomas
El síntoma principal:intenta iniciar sesión y recibe un mensaje de error en la consola:Reemplazo de sesión:la tabla './DB_NAME/mdl_sessions2' está marcada como bloqueada y debe repararse .
Soluciones
Puede verificar y reparar este problema usando mysqlcheck
comando con --auto-repair DBNAME
bandera. Cuando agrega el --auto-repair
flag, MySQL intenta reparar la corrupción en su base de datos.
# mysqlcheck -u USER_NAME -p --auto-repair DB_NAME
Enter password:
db_test.adodb_logsql OK
db_test.mdl_assignment OK
db_test.mdl_assignment_submissions OK
...
db_test.mdl_log
error : Table './db_test/mdl_log' is marked as crashed and should be repaired
...
db_test.mdl_sessions2
error : Table './db_test/mdl_sessions2' is marked as crashed and should be repaired
Repairing tables
db_test_18_latest.mdl_log OK
db_test_18_latest.mdl_sessions2 OK
Si solo desea verificar si su base de datos está dañada o no, ejecute el siguiente comando:
# mysqlcheck -c DATABASE_NAME -u USER_NAME -p
Si desea verificar todas las bases de datos y tablas en su servidor, agregue la bandera --all-databases
y omita el nombre de la base de datos, como se muestra en el siguiente comando:
# mysqlcheck -c -u USER_NAME -p --all-databases
Si solo desea verificar una tabla dentro de una base de datos, ejecute el siguiente comando:
# mysqlcheck -a DB_NAME TABLE_NAME -u USER_NAME -p
Conclusión
Con los comandos presentados en este artículo, ahora puede comprobar si su base de datos o tabla MySQL está corrupta.