"tbl_name.frm" tabella definizione (tabella) file "tbl_name. MYD "File Dati" tbl_name. Informazione" Ognuno di questi 3 tipi di file può soffrire di diverse forme di corruzione, ma il problema si presenta più spesso nei file dati e nei file indice. il mio isamchk crea un ". MYD" (dati) funziona, funziona rimuovendo il vecchio . MYD e rinominare il nuovo file con il nome originale per terminare la fase di riparazione. Se usi --quick, myisamchk non crea un temporaneo ". MYD", solo per supporre". MYD" è corretta e crea solo un nuovo file indice, senza toccarlo". MYD", che è sicuro perché myisamchk rileva automaticamente". MYD" è corrotto e in questo caso, abbandona la riparazione. Puoi anche dare a myisamchk due opzioni rapide. In questo caso, myisamchk non rinuncia ad alcuni errori (come ripetere le chiavi), ma cerca invece di modificare il ". MYD" per risolverli. Di solito è utile solo se implementi una correzione normale con troppo poco spazio libero su disco, usando le due opzioni rapide. In questo caso, dovresti almeno fare un backup prima di eseguire myisamchk. 1. Come controllare gli errori nella tabella Per controllare una tabella, usa il seguente comando: il mio isamchk tbl_name Questo rileva il 99,99% di tutti gli errori. Quello che non può scoprire è che la corruzione è coinvolta solo nei file dati (cosa rara). Se vuoi controllare una tabella, di solito dovresti eseguire myisamchk senza l'opzione oppure usare una delle opzioni -s o --silent. myisamchk -e tbl_name Effettua un controllo dei dati completamente approfondito (-e significa "controllo esteso"). Effettua un controllo di lettura per chiave su ogni riga per confermare che puntino effettivamente alla linea corretta. Questo può richiedere molto tempo su un tavolo grande con molte chiavi. MyISAMCHK di solito si ferma dopo aver trovato il primo errore. Se vuoi maggiori informazioni, puoi aggiungere l'opzione --verbose(-v). Questo fa sì che myisamchk continui fino a un massimo di 20 errori. In generale, un semplice myisamchk (senza argomenti diversi dal nome della tabella) è sufficiente. my isamchk -e -i tbl_name Come nel comando precedente, ma l'opzione -i dice a myisamchk di stampare anche alcune statistiche. 2. Come riparare il tavolo Il sintomo di una tabella corrotta è solitamente una rottura inaspettata della query, e puoi vedere, ad esempio, questi errori: "tbl_name.frm" è bloccato e non può essere modificato. Non riesco a trovare il file "tbl_name. MYI"(Errcode :### )。 Ricevi l'errore ### dal processore di tabella (in questo caso, l'errore 135 è un'eccezione). Fine del file inaspettato. I file di registrazione furono distrutti. In questi casi, devi sistemare il tavolo. Myisamchk di solito rileva e corregge la maggior parte dei problemi che vanno male. Il processo di riparazione consiste in un massimo di 4 fasi, descritte di seguito. Prima di iniziare, dovresti scaricare i permessi di accesso alla directory del database e ai file della checklist per assicurarti che siano leggibili dagli utenti Unix che usano MySQL (e da te, dato che hai bisogno di accedere al file che stai controllando). Se si rifiuta di modificare il file, devono essere scrivibili anche per te. Fase 1: Controlla la tua tabella Correre il mio isamchk *. MYI oppure (myisamchk -e *. A me, se hai più tempo). Usa l'opzione -s (silenzio) per disabilitare le informazioni non necessarie.
Il formato di file utilizzato da MySQL per memorizzare i dati è stato ampiamente testato, ma ci sono sempre condizioni esterne che possono causare la corruzione delle tabelle del database: Il processo mysqld viene bloccato in una sola scrittura; Un spegnimento inaspettato del computer (ad esempio, se il computer perde l'alimentazione); Un errore hardware. Questo capitolo descrive come verificare e gestire la corruzione dei dati in un database MySQL. Se il tuo tavolo è molto danneggiato, dovresti cercare di capire il perché! Vedi G.1 Debugging a MySQL server. Quando si effettua il recupero in caso di crash, è importante capire che ogni tabella in un database tbl_name corrisponde ai 3 file presenti nella directory del database |