Tento článek vysvětluje, jak zkontrolovat, zda vaše databáze není poškozená v MySQL®. Proč v databázi dochází ke korupci? Může k tomu dojít kvůli hardwaru, konkrétně selháním disku nebo když je disk plný.
Příznaky
Hlavní příznak:Pokusíte se přihlásit a v konzole se zobrazí chybová zpráva:Nahrazení relace:Tabulka ‘./DB_NAME/mdl_sessions2’ je označena jako poškozená a měla by být opravena .
Řešení
Tento problém můžete zkontrolovat a opravit pomocí mysqlcheck
pomocí příkazu --auto-repair DBNAME
vlajka. Když přidáte --auto-repair
příznak, MySQL se pokusí opravit poškození ve vaší databázi.
# 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
Pokud chcete pouze zkontrolovat, zda je vaše databáze poškozená nebo ne, spusťte následující příkaz:
# mysqlcheck -c DATABASE_NAME -u USER_NAME -p
Pokud chcete zkontrolovat všechny databáze a tabulky na vašem serveru, přidejte příznak --all-databases
a vynechejte název databáze, jak je znázorněno v následujícím příkazu:
# mysqlcheck -c -u USER_NAME -p --all-databases
Pokud chcete pouze zkontrolovat tabulku v databázi, spusťte následující příkaz:
# mysqlcheck -a DB_NAME TABLE_NAME -u USER_NAME -p
Závěr
Pomocí příkazů uvedených v tomto článku můžete nyní zkontrolovat, zda vaše databáze MySQL nebo tabulka nejsou poškozené.