Tabella MySQL contrassegnata come crash e la riparazione (automatica) non risolve il problema
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 [email protected] oppure [email protected] (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