Zmieniłem katalog danych instalacji MySQL i wszystkie bazy zostały poprawnie przeniesione, z wyjątkiem jednej. Mogę połączyć się USEz bazą danych. SHOW TABLESzwraca mi również wszystkie tabele poprawnie, a pliki każdej tabeli istnieją w katalogu danych MySQL.
Jednak gdy próbuję SELECTcoś z tabeli, pojawia się komunikat o błędzie, że tabela nie istnieje. Nie ma to jednak sensu, ponieważ byłem w stanie wyświetlić tę samą tabelę za pomocą SHOW TABLESinstrukcji.
Domyślam się, że SHOW TABLESwyświetla listę istnienia pliku, ale nie sprawdza, czy plik jest uszkodzony, czy nie. W związku z tym mogę wyświetlić listę tych plików, ale nie mam do nich dostępu.
Niemniej jednak jest to tylko przypuszczenie. Nigdy wcześniej tego nie widziałem. Teraz nie mogę zrestartować bazy danych w celu przetestowania, ale każda inna aplikacja, która z niej korzysta, działa poprawnie. Ale to tylko przypuszczenie, nigdy wcześniej tego nie widziałem.
Czy ktoś wie, dlaczego tak się dzieje?
Przykład:
mysql> SHOW TABLES;
+-----------------------+
| Tables_in_database |
+-----------------------+
| TABLE_ONE |
| TABLE_TWO |
| TABLE_THREE |
+-----------------------+
mysql> SELECT * FROM TABLE_ONE;
ERROR 1146 (42S02): Table 'database.TABLE_ONE' doesn't exist