Kurcze, dlaczego to tak jest, że mam bazy w MyISAM na MySQL i nie ma problemów, a to dobre i kochane InnoDB zawsze grymasi ?
No dobra a teraz do konkretów, jak się okazuje jedynym dobrym sposobem żeby uszkodzoną bazę w InnoDB przywrócić jest …….. usunięcie jej i utworzenie na nowo -0 chore ale co poradzić.
Kroki są proste:
1) W my.cnf dajemy innodb_force_recovery = 4 – wartość 4 jest używana przeze mnie, natomiast mysql.com bardziej dokładnie definiuje co jak i dlaczego.
2) Dla cpanela service mysql restart, dla innych po prostu restart MySql
3) Dla ludzi kochających Cpanel polecam bloknąć konto na czas recovery czyli – /scripts/suspendacct nazwa_konta
4) Linia komend mysqldump baza tabela > plik.sql albo mysqldump baza > plik.sql
5) Dropujemy tabelę lub bazę
6) Dajemy # przed innodb_force_recovery w my.cnf
7) Restartujemy MySQL
8) Wrzucamy dumpa [root] # mysql nazwa_bazy < plik.sql
I pomyśleć cholera, że w MyISAM wystarczy dać REPAIR TABLE, bleh ale cóż 🙂