Riparare tabelle in MySQL


Quest’errore accade quando una tabella si corrompe, il mysql riporta l’errore dicendo che SQL non è valido:

Invalid SQL:

SELECT *
FROM tabella
Where …..

MySQL Error : Can’t open file: ‘tabella.MYI’ (errno: 144) Error Number : 1016

Se la tabella è corrotta si posso fare soltanto 2 cose:

  • Sostituirla con l’ultimo backup (sempre che ci sia)
  • Tentare di ripararla

Affrontiamo la seconda opzione che è la più logica.
Entrate in mysql in console, collegatevi al database contenente la tabella incriminata e lanciate il seguente comando:

REPAIR TABLE tabella;

Se tutto va bene dovrebbe resistuirvi status=OK
Potrebbe far fatica a ricostruire gli indici, dando l’errore Not enough memory for sort-key-blocks dobbiamo comunque essere sicuri di avere abbastanza spazio su disco, è un’operazione molto dispendiosa.
Se ancora l’errore persiste si può sempre fare un altro tentativo:
Uscite dalla shell di mysql, andate nella directory fisica del Database e lanciate il seguente comando:

myisamchk -c tabella.MYI

Se anche così vi restituisce errore, lanciate los tesso comando con l’opzione -r

myisamchk -r movimientos.MYI

Se ancora non va, l’unica alternativa è rassegnarsi, ripristinate il backup più recente.

Riparare tabelle in MySQL ultima modifica: 2006-06-06T00:00:00+00:00 da Enrico

Comments are closed.