Tabella MySQL contrassegnata come crash e la riparazione (automatica) non risolve il problema

Pubblicità

Se hai riscontrato problemi con il database e hai provato a utilizzare l’opzione di PhpMyAdmin  per riparare il database

potresti aver riscontrato questo errore durante il tentativo di interrogare alcune delle tue tabelle:

MySQL Table 'nome_della_tabella_da_correggere' is marked as crashed and last (automatic?) repair failed

Ciò può essere causato da una serie di motivi come un hard reset sul server, zero spazio su disco disponibile o il processo MySQL in crash per qualche motivo.
E’ possibile procedere in questo modo

1. Collegarsi al server utilizzando SSH (consiglio Putty)

ssh root@mioserver.it oppure utente_amministratore@192.168.185.45 (l'indirizzo IP del server - pubblico o privato che sia)

2. Fermare il servizio database MySQL

service mysql stop

3. Spostarsi nella diectory dove risiede il database MySQL

cd /var/lib/mysql/nome_del_database

4. Eseguire il comando myisamchk sulla table che ha evidenziato il problema

myisamchk -r nome_della_tabella_da_correggere

ottenendo un output del genere

root@mioserver:/var/lib/mysql/nome_del_database# myisamchk -r nome_della_tabella_da_correggere
- recovering (with sort) MyISAM-table 'nome_della_tabella_da_correggere'
Data records: 0
- Fixing index 1
Found block that points outside data file at 5247198
Data records: 2365594

5. Avviare il servizio database MySQL

service mysql start

6. Finito
La tabella dovrebbe adesso funzionare senza problemi.

N.B.
Volendo riparare tutte le tabelle usare il comando

myisamchk --silent --force --fast --update-state --key_buffer_size=64M --myisam_sort_buffer_size=64M --read_buffer_size=1M --write_buffer_size=1M *.MYI
Pubblicità

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *