2012-02-02 19 views
6

Zauważyłem, że gdy phpMyAdmin otwiera DB, natychmiast pokazuje, czy tabela się zawiesiła, czy nie. Wydaje mi się więc, że phpMyAdmin nie działa pod numerem CHECK TABLE lub ANALYZE TABLE.Sprawdzanie MySQL dla awarii tabeli

Czy ktoś wie, co robi, aby uzyskać tę informację tak szybko i sprawnie?

Odpowiedz

5

Założę się, że

SHOW TABLE STATUS FROM `db` 

jest rzeczą szukasz.

Spójrz na linię this. Myślę, że jeśli ENGINE ma wartość null (pustą), może to być spowodowane awarią tabeli

+0

Może być sytuacja, w której jest to pomocne, ale nie w moim. 'SHOW TABLE STATUS' nie powoduje żadnej różnicy statusu dla uszkodzonych tabel. – mc0e

3
show table status where comment like '%crash%'; 
+0

Podoba mi się ta lepsza niż zaakceptowana odpowiedź, ponieważ nie jest to zrozumiałe w przyjętej odpowiedzi, że można łatwo użyć LIKE w kontekście instrukcji POKAŻ. (Wolę też KOMENTARZ! = "".) – HoldOffHunger

0

Najskuteczniejszym sposobem znalazłem jest skorzystanie z narzędzia wiersza poleceń mysqlcheck:

mysqlcheck -u mydbuser -p mydbname

ten będzie miał dostęp mydbname użyciu użytkownika mydbuser i skłoniło do tego hasło użytkownika. Następnie sprawdzi każdą tabelę w określonej bazie danych.

Zobacz https://dev.mysql.com/doc/refman/5.7/en/mysqlcheck.html

Uwaga: to nie jest jak phpMyAdmin to robi, więc nie jest to ściśle odpowiedzią na oryginalne pytanie, ale Kładę to tutaj, ponieważ Google wysyła zapytania do mysql show crashed tables tutaj.