Я змінив datadir інсталяції 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