Я изменил каталог данных установки MySQL, и все базы переместились правильно, кроме одной. Я могу подключиться и USE
базу данных. SHOW TABLES
также возвращает мне все таблицы правильно, и файлы каждой таблицы существуют в каталоге данных MySQL.
Однако, когда я пытаюсь SELECT
что-то из таблицы, я получаю сообщение об ошибке, что таблица не существует. Тем не менее, это не имеет смысла, поскольку я смог показать ту же таблицу с помощью оператора SHOW TABLES
.
Я предполагаю, что SHOW TABLES
перечисляет существование файла, но не проверяет, поврежден ли файл или нет. Следовательно, я могу перечислить эти файлы, но не могу получить к ним доступ.
Тем не менее, это всего лишь предположение. Я такого раньше не видел. Теперь я не могу перезапустить базу данных для тестирования, но все остальные приложения, которые ее используют, работают нормально. Но это всего лишь предположение, я такого раньше не видел.
Кто-нибудь знает, почему это происходит?
Пример:
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