Questo articolo spiega come verificare la corruzione del database in MySQL®. Perché si verifica un danneggiamento in un database? Potrebbe accadere a causa dell'hardware, in particolare di guasti del disco o quando un disco è pieno.
Sintomi
Il sintomo principale:tenti di accedere e ricevi un messaggio di errore nella console:Sostituzione sessione:la tabella './DB_NAME/mdl_sessions2' è contrassegnata da un arresto anomalo e deve essere riparata .
Soluzioni
Puoi controllare e riparare questo problema usando mysqlcheck
comando con il --auto-repair DBNAME
bandiera. Quando aggiungi il --auto-repair
flag, MySQL tenta di riparare il danneggiamento del database.
# 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
Se vuoi solo controllare se il tuo database è danneggiato o meno, esegui il seguente comando:
# mysqlcheck -c DATABASE_NAME -u USER_NAME -p
Se vuoi controllare tutti i database e le tabelle nel tuo server, aggiungi il flag --all-databases
e omettere il nome del database, come mostrato nel comando seguente:
# mysqlcheck -c -u USER_NAME -p --all-databases
Se vuoi solo controllare una tabella all'interno di un database, esegui il comando seguente:
# mysqlcheck -a DB_NAME TABLE_NAME -u USER_NAME -p
Conclusione
Con i comandi presentati in questo articolo, ora puoi controllare la corruzione del database o della tabella MySQL.