"tbl_name.frm" lentelės apibrėžimo (lentelės) failas "tbl_name. MYD " Duomenų failas "tbl_name. MYI" rodyklės failas Kiekvienas iš šių 3 failų tipų gali nukentėti nuo skirtingų korupcijos formų, tačiau problema dažniausiai kyla duomenų failuose ir indekso failuose. myisamchk sukuria ". MYD" (duomenų) failą, kad veiktų, jis veikia pašalindamas seną ". MYD failą ir pervardykite naują failą į pradinį failo pavadinimą, kad užbaigtumėte taisymo etapą. Jei naudojate --quick, myisamchk nesukuria laikino ". MYD" failą, tik darant prielaidą". MYD" failas yra teisingas ir sukuria tik naują indekso failą, neliečiant". MYD", kuris yra saugus, nes myisamchk automatiškai aptinka". MYD" failas yra sugadintas ir tokiu atveju atsisakykite taisymo. Taip pat galite duoti myisamchk du greitus variantus. Tokiu atveju myisamchk neatsisako kai kurių klaidų (pvz., kartoti klavišus), o bando modifikuoti ". MYD" failą, kad juos išspręstumėte. Paprastai tai naudinga tik tuo atveju, jei įdiegiate įprastą pataisymą per mažai laisvos vietos diske, naudodami dvi greitąsias parinktis. Tokiu atveju prieš paleisdami myisamchk turėtumėte bent jau pasidaryti atsarginę kopiją. 1. Kaip patikrinti lentelės klaidas Norėdami patikrinti lentelę, naudokite šią komandą: myisamchk tbl_name Tai užfiksuoja 99,99% visų klaidų. Ko ji negali sužinoti, yra tai, kad korupcija yra susijusi tik su duomenų failais (o tai yra neįprasta). Jei norite patikrinti lentelę, paprastai turėtumėte paleisti myisamchk be parinkties arba naudoti vieną iš -s arba --silent parinkčių. myisamchk -e tbl_name Jis atlieka visiškai išsamų duomenų patikrinimą (-e reiškia "išplėstinis patikrinimas"). Jis atlieka kiekvienos eilutės skaitymo patikrinimą, kad patvirtintų, kad jie nurodo teisingą eilutę. Tai gali užtrukti ilgai ant didelio stalo su daugybe raktų. Myisamchk paprastai sustoja, kai randa pirmąją klaidą. Jei norite daugiau informacijos, galite pridėti parinktį --verbose(-v). Tai daro myisamchk tęsti iki daugiausiai 20 klaidų. Apskritai pakanka paprasto myisamchk (be jokių kitų argumentų, išskyrus lentelės pavadinimą). myisamchk -e -i tbl_name Kaip ir ankstesnėje komandoje, bet parinktis -i nurodo myisamchk taip pat atsispausdinti kai kuriuos statistinius duomenis. 2. Kaip pataisyti stalą Sugadintos lentelės požymis paprastai yra netikėtas užklausos lūžis ir galite pamatyti, pavyzdžiui, šias klaidas: "tbl_name.frm" yra užrakintas ir negali būti pakeistas. Nepavyko rasti failo "tbl_name. MYI"(Klaidingas kodas: ### )。 Gaukite klaidą ### iš lentelės procesoriaus (šiuo atveju 135 klaida yra išimtis). Netikėta failo pabaiga. Įrašų bylos buvo sunaikintos. Tokiais atvejais turite sutvarkyti lentelę. Myisamchk paprastai aptinka ir ištaiso daugumą dalykų, kurie negerai. Remonto procesas susideda iš 4 etapų, aprašytų žemiau. Prieš pradėdami, turėtumėte cd teises į duomenų bazės katalogą ir kontrolinio sąrašo failus, kad įsitikintumėte, jog juos gali skaityti Unix vartotojai, naudojantys mysqld (ir jūs, nes jums reikia prieigos prie tikrinamo failo). Jei ji atsisako keisti failą, jie taip pat turi būti rašomi jums. 1 etapas: patikrinkite lentelę Bėk Myisamchk *. MYI arba (myisamchk -e *. MYI, jei turite daugiau laiko). Naudokite parinktį -s (tyla), kad išjungtumėte nereikalingą informaciją.
Failo formatas, kurį MySQL naudoja duomenims saugoti, buvo išsamiai išbandytas, tačiau visada yra išorinių sąlygų, dėl kurių duomenų bazės lentelės gali būti sugadintos: mysqld procesas nužudomas vienu rašymu; Netikėtas kompiuterio išjungimas (pvz., jei kompiuteris praranda maitinimą); Aparatūros klaida. Šiame skyriuje aprašoma, kaip patikrinti ir tvarkyti duomenis MySQL duomenų bazėje. Jei jūsų stalas yra labai pažeistas, turėtumėte pabandyti išsiaiškinti, kodėl! Žr. G.1 MySQL serverio derinimas. Atliekant atkūrimą po gedimo, svarbu suprasti, kad kiekviena duomenų bazės tbl_name lentelė atitinka 3 failus duomenų bazės kataloge |