Я изменил каталог данных установки MySQL, и, выполнив некоторые шаги, все заработало. Все базы, которые у меня были, были перемещены правильно, кроме одной.
Я могу подключиться и ИСПОЛЬЗОВАТЬ базу данных, даже SHOW TABLES возвращает мне все таблицы правильно, и файлы каждой таблицы существуют в каталоге данных mysql. Но когда я пытаюсь ВЫБРАТЬ что-то там, он говорит, что таблицы не существует. Но таблица существует, она даже отображается в инструкции 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
В моем случае это произошло из-за случающейся проблемы. У меня была база данных, названная config
, но я использовал USE CONFIG
. Изменение его к USE config
зафиксировало его.