Я изменил каталог данных установки 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