"tbl_name.frm" tabeldefinition (tabel) fil "tbl_name. MYD "Data File "tbl_name. MYI"-indeksfil Hver af disse 3 filtyper kan lide af forskellige former for korruption, men problemet opstår oftest i datafiler og indeksfiler. myisamchk skaber en ". MYD" (data)filen virker, den virker ved at fjerne den gamle ". MYD-fil og omdøbe den nye fil til det oprindelige filnavn for at afslutte reparationsfasen. Hvis du bruger --quick, skaber myisamchk ikke en midlertidig ". MYD"-fil, antager bare". MYD"-filen er korrekt og opretter kun en ny indeksfil uden at røre". MYD"-fil, hvilket er sikkert, fordi myisamchk automatisk opdager". MYD"-filen er korrupt, og i dette tilfælde opgiv reparationen. Du kan også give myisamchk to – hurtige muligheder. I dette tilfælde giver myisamchk ikke op på nogle fejl (som gentagne taster), men forsøger i stedet at ændre ". MYD"-filen for at løse dem. Normalt er det kun nyttigt, hvis du implementerer en normal løsning på for lidt ledig diskplads ved at bruge de to hurtige muligheder. I dette tilfælde bør du i det mindste lave en backup, før du kører myisamchk. 1. Hvordan man tjekker fejlene i tabellen For at tjekke en tabel skal du bruge følgende kommando: Myisamchk tbl_name Dette fanger 99,99% af alle fejl. Hvad den ikke kan finde ud af, er, at korruption kun er involveret i datafiler (hvilket er usædvanligt). Hvis du vil tjekke en tabel, bør du som regel køre myisamchk uden muligheden eller bruge enten -s eller --stille indstillingerne. myisamchk -e tbl_name Den laver en fuldstændig grundig datakontrol (-e betyder "udvidet kontrol"). Den laver en læsekontrol per tast på hver linje for at bekræfte, at de peger på den rigtige linje. Det kan tage lang tid på et stort bord med mange nøgler. Myisamchk stopper som regel, når den finder den første fejl. Hvis du vil have mere information, kan du tilføje --verbose(-v)-muligheden. Dette får myisamchk til at fortsætte indtil maksimalt 20 fejl. I almindelig brug er en simpel myisamchk (uden andre argumenter end tabelnavnet) tilstrækkelig. myisamchk -e -i tbl_name Ligesom den forrige kommando, men -i-muligheden fortæller myisamchk også at printe nogle statistikker. 2. Hvordan man reparerer bordet Symptomet på en korrupt tabel er som regel et uventet forespørgselsbrud, og du kan for eksempel se disse fejl: "tbl_name.frm" er låst og kan ikke ændres. Kan ikke finde filen "tbl_name. MYI"(Errcode :### )。 Få fejl ### fra tabelprocessoren (i dette tilfælde er fejl 135 en undtagelse). Uventet fil slut. Arkivfiler blev ødelagt. I disse tilfælde skal du reparere bordet. Myisamchk opdager og retter som regel de fleste fejl. Reparationsprocessen består af op til 4 faser, beskrevet nedenfor. Før du starter, bør du cd-e tilladelser til databasemappen og tjekke tjekfilerne for at sikre, at de er læsbare for Unix-brugere, der kører mysqld (og for dig, da du har brug for adgang til den fil, du tjekker). Hvis den nægter at ændre filen, skal de også kunne skrives til dig. Fase 1: Tjek dit bord Løb myisamchk *. MYI eller (myisamchk -e *. MYI, hvis du har mere tid). Brug -s (stilhed) funktionen til at deaktivere unødvendig information.
Filformatet, som MySQL bruger til at gemme data, er blevet grundigt testet, men der er altid eksterne betingelser, der kan forårsage korruption i databasetabeller: MySQLD-processen dræbes i én skrivning; En uventet nedlukning af computeren (for eksempel hvis computeren mister strøm); En hardwarefejl. Dette kapitel beskriver, hvordan man tjekker for og håndterer datakorruption i en MySQL-database. Hvis dit bord er meget beskadiget, bør du prøve at finde ud af hvorfor! Se G.1 Debugging af en MySQL-server. Når man udfører crash-gendannelse, er det vigtigt at forstå, at hver tabel i en database tbl_name svarer til de 3 filer i databasemappen |