7.7.2015
MySQL je velmi používaná relační databáze, která i přes svou oblíbenost trpí několika těžko pochopitelnými problémy. Jedním z nich je i fakt, že někdy umře a nechá po sobě nekonzistentní data na disku. Tyto takzvaně koruplté (corrupted) tabulky pak můžou buďto vadit v dalším spuštění, nebo při tom příjdeme přímo o cenná data. První na co je potřeba dát si pozor před spuštěním databáze s takto poškozenými datovými soubory je nutnost udělat si zálohu těchto dat. Obvykle je možné ji provést okopírováním adresáře /var/lib/mysql někam bokem.
Jestliže jsme provedli zálohu offline havarované databáze, můžeme zkusit znovu spustit MySQL (obvykle něco jako /etc/init.d/mysql start, nebo tak něco). Pokud se to podaří, tak MySQL se pokusí data z databáze načíst, opravit a začít znovu používat. Někdy se to může podařit, jindy ne. Pokud se to nepodaří, pak může pro záchranu dat pomoci následující postup:
MySQL pochopitelně nabízí i jiné způsoby jak spustit vícero instancí současně, nicméně principielně se neliší a tento je poměrně přehledný.
Import dat samotných je pak otázka toho jak jsme si data z databáze vytahali. MySQL dump nástroj umí tato data uložit do souboru jak v podobě příkazů pro vytvoření potřebné tabulky, tak i příkazů pro naplnění této tabulky daty.
Ačkoliv se jedná o na internetu vcelku dobře dokumentovaný proces, má jisté záludnosti především v onom přeuložení dat po první startu (resp. konci) běhu MySQL s poškozenými soubory. Věřím, že výše nastíněný postup vám může pomoci při řešení obdobných problémů.