Uncaught mysqli_sql_exception: Table is marked as crashed and should be repaired

All'improvviso ricevo questo messaggio di "Fatal Error" all'apertura di un applicativo basato su database MySql su una specifica tabella che dice che è crashata, l'eccezione riporta il seguente messaggio:

"Fatal error: Uncaught mysqli_sql_exception: Table 'table_name' is marked as crashed and should be repaired in"

Non capisco come si sia potuto verificare questo crash, funzionava tutto alla perfezione e non ci sono stati interventi particolari o modifiche sulla tabella, cosa significa e come posso risolvere?

In Corso 3
MySql 10-11-2024 1 Risposta 20 Visite 0

Risposte ( 1 approvate )

  1. AskDB Staff
    +1
    10-11-2024 09:34:16
    Rispondi

    Non bisogna stupirsi di ricevere il seguente messaggio di errore:

     

    "Fatal error: Uncaught mysqli_sql_exception: Table 'table_name' is marked as crashed and should be repaired in"

     

    Esso indica che la tabella (che è pur sempre un file fisico residente su file system) per un qualche motivo diciamo si è "danneggiata", probabilmente qualche byte corrotto o qualche errore di scrittura.

     

    I motivi per cui si verifica un "crash" di una tabella possono essere diversi, possiamo ipotizzare i più probabili quali errori di scrittura lettura, sovraccarico di dati e/o query, mancanza di spazio sull'hard disk.

     

    Risolvere il crash di una tabella MySql tuttavvia nella stragrande maggioranza dei casi è un'operazione molto semplice, basta fare un REPAIR della tabella, questo può essere fatto agevolmente in due modi:

     

    1. Tramite istruzione SQL REPAIR con la seguente sintassi:
      REPAIR TABLE `table_name`;?
    2. Via interfaccia grafica, come ad es. in phpMyAdmin, selezionando la tabella crashata ed eseguendo l'operazione "Repair Table" (che di fatto non fà altro che eseguire l'istruzione SQL del punto 1)

     

    Questo nella stragrande maggioranza dei casi basta per risolvere (fix) l'eccezzione "Fatal error: Uncaught mysqli_sql_exception: Table 'table_name' is marked as crashed and should be repaired in", se però così non vi si riesce, allora il crash è ben più grave (non parliamo di qualche byte/bit corrotto), e quasi certamente si è obbligati a ripristinare la tabella da qualche copia di backup (auspicando sempre che questo sia stato fatto).

Rispondi

Per poter rispondere a questa domanda, devi essere registrato e loggato sul sito, dopodichè compila il box sottostante cercando di essere il più chiaro ed esauriente possibile, la tua risposta potrebbe essere la soluzione che l'utente cerca ed essere contrassegnata come migliore, consentendoti così di ottenere punti ed autorevolezza.

AskDB Staff

AskDB Staff

Autore di questa domanda

 Domanda Precedente

 Elenco Domande