A MySQL-nek sajátossága, hogy a tábla időnként “sérül”. A sérülés persze nem fizikai sérülés, inkább az írási-sebesség miatti konzisztenciavesztés néha-néha. Ez a probléma nem a szerver karbantartása, vagy konfigurálása miatt keletkezik. Ne ijedjünk meg, legtöbb esetben javítható a probléma. Mivel ez egy adatbáziskezelő-rendszer hiba, ezért a MySQL rendelkezik a REPAIRE TABLE utasítással. PHPMyADminból is elérhető funkció.
Táblázat javítása a DirectAdmin felületen
- Lépj be a DirectAdmin felületre
- Válaszd ki a menedzselni kívánt Domain nevet
- Kattints a Fiók Beállítások➠ Adatbázisok menü-pontra
- Kattints a kezelni kívánt elem jobb szélén található Kezelés a kezelő megnyitásához.
- Görgess az Adatbázis műveletek sorhoz, és kattints az Ellenőrzés, Optimalizálás vagy Javítás feliratú gombra!
Táblázat javítása phpMyAdmin felületen
A sérült MySQL táblák javítása a phpMyAdmin felületen keresztül viszonylag egyszerű folyamat. Az alábbi lépésekkel javíthatod a sérült táblákat:
- phpMyAdmin elérése
Jelentkezz be a phpMyAdmin felületre. Ezt általában a tárhelyszolgáltatód adminisztrációs paneljéből érheted el (pl. cPanel, Plesk stb.). - Válaszd ki az adatbázist
A bal oldali menüben válaszd ki azt az adatbázist, amelyben a sérült tábla található. Kattints az adatbázis nevére, és megjelenik az összes tábla. - Sérült tábla kiválasztása
Az adatbázis kiválasztása után látható lesz az összes benne található tábla. Keress rá a sérült táblára. Jelöld ki a sérült táblát az előtte lévő jelölőnégyzet bejelölésével. - Tábla ellenőrzése
A táblák alatti „Műveletek” (Operations) sávban válaszd ki a „Tábla ellenőrzése” (Check Table) opciót a legördülő menüből, majd kattints a Végrehajtás gombra.
A phpMyAdmin megvizsgálja a táblát, és megjeleníti, hogy van-e probléma. - Tábla javítása
Ha az ellenőrzés kimutatja, hogy a tábla sérült, akkor hasonló módon, jelöld ki újra a táblát, és válaszd a „Tábla javítása” (Repair Table) opciót a legördülő menüből, majd kattints a Végrehajtás gombra.
A phpMyAdmin megpróbálja javítani a táblát, és a folyamat végén visszajelzést ad arról, hogy sikeres volt-e a javítás. - Tábla optimalizálása (opcionális)
Miután sikeresen javítottad a táblát, érdemes optimalizálni is a teljesítmény javítása érdekében. Ehhez hasonlóan válaszd ki a táblát, és a legördülő menüből válaszd ki a „Tábla optimalizálása” (Optimize Table) lehetőséget. - Ellenőrzés
Ellenőrizd újra a táblát a „Tábla ellenőrzése” opcióval, hogy meggyőződj róla, a javítás sikeres volt, és már nincs probléma a táblával.
Fontos megjegyzések:
- A MyISAM táblák javítására a phpMyAdmin REPAIR funkciója jól működik.
- Az InnoDB táblák esetén, ha súlyos probléma lép fel, a phpMyAdmin javítási funkciója nem működik. Az InnoDB táblák önjavítóak, de ha nagy a baj, a szervernaplókban kell keresni a hibát, vagy a szerver „force recovery” módban való újraindítása lehet szükséges.
A phpMyAdmin egy kényelmes eszköz a táblák kezelésére, és rendszeres biztonsági mentés mellett hatékonyan használható a hibák kijavítására.
Táblázat javítása Linux alatt, SSH használatával
- Azonosítsd a sérült táblát
Először ellenőrizd, hogy melyik tábla sérült meg, és mi okozta a problémát. Ehhez használd a következő parancsot:CHECK TABLE table_name;
Ez a parancs megmutatja, hogy a tábla sérült-e, és további információkat ad a hiba természetéről. - Tábla javítása a REPAIR parancs segítségével
Ha aCHECK TABLE
megerősítette, hogy a tábla sérült, próbáld meg javítani a táblát a következő paranccsal:REPAIR TABLE table_name;
Ez a parancs helyreállíthatja a táblát. Azonban a MySQL különböző táblatípusainál eltérően működik:
MyISAM táblák: AREPAIR TABLE
jól működik, és általában képes helyreállítani a sérült táblákat.
InnoDB táblák: Az InnoDB táblák esetén aREPAIR TABLE
parancs nem működik, mivel ezek automatikusan helyreállnak, ha a MySQL szerver újraindul. - Táblák ellenőrzése és optimalizálása
Javítás után érdemes optimalizálni a táblát a jobb teljesítmény érdekében:OPTIMIZE TABLE table_name;
- Adatbázis újraindítása és naplók ellenőrzése
Ha a táblák sérülésének oka például egy váratlan leállás vagy szerver összeomlás volt, próbálj meg újraindítani a MySQL szervert. Ezt követően nézd át a MySQL naplófájljait (error log
), hogy kiderítsd a pontos problémát. - Biztonsági mentésből való helyreállítás
Ha a fenti módszerek nem működnek, és a tábla javíthatatlan, akkor az egyik legjobb lehetőség a biztonsági mentésből történő visszaállítás.
Használj friss biztonsági mentést, hogy visszaállítsd a táblát és minimalizáld az adatvesztést. - InnoDB táblák esetén: Force recovery módban indítás (VPS vagy bérelt Szerver esetén)
Ha az InnoDB tábla sérült, és a normál javítási módszerek nem működnek, próbáld meg a MySQL-t „force recovery” módban indítani. Ehhez amy.cnf
vagymy.ini
fájlban add hozzá az alábbi beállítást:[mysqld] innodb_force_recovery = 1
Indítsd újra a MySQL-t, és próbáld meg kijavítani vagy exportálni az adatokat. Ne felejtsd el visszaállítani az eredeti beállításokat a helyreállítás után.