Zmieniłem katalog danych instalacji MySQL i wszystkie bazy zostały poprawnie przeniesione, z wyjątkiem jednej. Mogę połączyć się USE
z bazą danych. SHOW TABLES
zwraca mi również wszystkie tabele poprawnie, a pliki każdej tabeli istnieją w katalogu danych MySQL.
Jednak gdy próbuję SELECT
coś 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 TABLES
instrukcji.
Domyślam się, że SHOW TABLES
wyś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