Cet article explique comment vérifier si votre base de données est corrompue dans MySQL®. Pourquoi la corruption se produit-elle dans une base de données ? Cela peut se produire à cause du matériel, en particulier des pannes de disque ou lorsqu'un disque est plein.
Symptômes
Le symptôme principal :vous essayez de vous connecter et obtenez un message d'erreur dans la console :Remplacement de session :la table './DB_NAME/mdl_sessions2' est marquée comme écrasée et doit être réparée .
Solutions
Vous pouvez vérifier et réparer ce problème en utilisant le mysqlcheck
commande avec le --auto-repair DBNAME
drapeau. Lorsque vous ajoutez le --auto-repair
flag, MySQL essaie de réparer la corruption dans votre base de données.
# 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 vous voulez juste vérifier si votre base de données est corrompue ou non, lancez la commande suivante :
# mysqlcheck -c DATABASE_NAME -u USER_NAME -p
Si vous souhaitez vérifier toutes les bases de données et tables de votre serveur, ajoutez le drapeau --all-databases
et omettez le nom de la base de données, comme indiqué dans la commande suivante :
# mysqlcheck -c -u USER_NAME -p --all-databases
Si vous souhaitez simplement vérifier une table dans une base de données, exécutez la commande suivante :
# mysqlcheck -a DB_NAME TABLE_NAME -u USER_NAME -p
Conclusion
Avec les commandes présentées dans cet article, vous pouvez maintenant vérifier si votre base de données ou table MySQL est corrompue.