Shrnutí: Tento článek uvádí některé běžné chyby, se kterými se můžete setkat, když dojde k poškození tabulky MySQL. Nastiňuje také možné důvody poškození tabulky databáze MySQL. Článek také vysvětluje, co můžete udělat pro opravu poškozených tabulek a jak se může hodit software na opravu databáze MySQL k obnově dat v tabulce a všech ostatních databázových objektů.
Jako uživatel databáze MySQL se můžete setkat s některou z těchto chyb:
- „Tabulka je označena jako havarovaná a měla by být opravena“
- „Tabulka se zhroutila a poslední oprava se nezdařila“
- „Tabulka tbl_name neexistuje“
- „Nesprávný soubor klíče pro tabulku:‚…‘. Zkuste to opravit“ atd.
Toto jsou varovné signály, že vaše tabulka MySQL je poškozená.
Co způsobuje poškození v tabulce databáze MySQL?
Níže jsou uvedeny možné důvody vedoucí k poškození tabulky databáze MySQL:
- Problémy v základní platformě používané MySQL, včetně diskového subsystému, ovladačů, řadičů atd.
- Náhlé vypnutí systému nebo selhání serveru
- Proces MySQL se zastaví uprostřed zápisu do databáze
- Softwarová chyba nebo selhání hardwaru
Setkání s některou z těchto chyb poškození MySQL může způsobit, že data v tabulkách nebudou přístupná. Pojďme diskutovat o řešeních, jak opravit poškozené tabulky.
Jak opravit chyby způsobené poškozením databáze MySQL?
Pokud máte aktualizovanou zálohu databáze, obnovte databázi ze zálohy, abyste obnovili nepřístupná data tabulky. Pokud záloha není k dispozici, opravte poškozené tabulky MySQL a obnovte data provedením kroků v následujícím pořadí:
Poznámka: Udělejte si zálohu databáze a tabulek MySQL, abyste zabránili dalšímu poškození během procesu opravy a obnovy.
Krok 1:Zkontrolujte, zda v tabulce není chyba
Nejprve musíte zkontrolovat databázovou tabulku, zda neobsahuje chyby poškození. Můžete použít KONTROLNÍ TABULKU příkaz k diagnostice poškozených tabulek InnoDB a MyISAM:
ZKONTROLOVAT TABULKU možnost tbl_name; |
Zde nahraďte „tbl_name“ názvem poškozené databázové tabulky. A nahraďte „možnost“ kteroukoli z těchto možností:RYCHLÝ, RYCHLÝ, STŘEDNÍ, ROZŠÍŘENÝ a ZMĚNĚNÝ.
Možnost | Popis |
RYCHLÉ | Provádí rychlejší opravu tabulek InnoDB a MyISAM. Přeskočí skenování řádků za účelem hledání nesprávných odkazů |
RYCHLE | Zkontrolujte pouze tabulky MyISAM, které nebyly správně uzavřeny. Neaplikujte na tabulky InnoDB. |
ZMĚNĚNO | Zkontrolujte pouze tabulky MyISAM, které nebyly uzavřeny od poslední kontroly. Neaplikujte na tabulky InnoDB. |
STŘEDNÍ | Prohledáním řádků ověřte, zda jsou smazané odkazy platné. Platí pouze pro tabulky MyISAM. |
ROZŠÍŘENÉ | Provede úplné vyhledání klíčů pro všechny klíče pro každý řádek tabulky MyISAM. Spuštění trvá dlouho. |
Chcete-li zkontrolovat poškození více než jedné tabulky, použijte následující příkaz:
ZKONTROLUJTE TABULKU název_tbl1, název_tbl2, název_tbl 3 možnost; |
Poznámka: Příkaz CHECK TABLE lze použít pouze při spuštěném procesu MySQL. Pokud však proces/server neběží, můžete pomocí následujícího příkazu „myisamchk“ zkontrolovat, zda tabulky MyISAM nejsou poškozené:
myisamchk [volby] tbl_name …
Tento příkaz kontroluje jednu tabulku.
Chcete-li zkontrolovat všechny tabulky v databázi MySQL, zda nejsou poškozené, spusťte následující příkaz:
myisamchk /cesta/k/datadir/*/*.MYI
Nástroj myisamchk nefunguje pro tabulky InnoDB.
Krok 2:Opravte poškozenou tabulku
Poznámka: Příkaz myisamchk se vztahuje pouze na tabulky MyISAM a nefunguje pro tabulky InnoDB. Chcete-li opravit a obnovit tabulku Innodb, přejděte ke kroku 3.
Nástroj myisamchk může také pomoci opravit poškozenou (poškozenou) tabulku MyISAM. Chcete-li použít nástroj k opravě poškozené tabulky, postupujte takto:
- Zastavte službu MySQL zadáním:
zastavení služby mysqld cd /var/lib/mysql |
- Přejděte do adresáře, kde se nachází databáze.
cd /var/lib/mysql/název_tabulky myisamchk
|