SQL SHOW TABLES перечисляет несколько таблиц, но не может ВЫБРАТЬ их (нет такой таблицы) - PullRequest
6 голосов
/ 18 июля 2011

У меня есть база данных с именем apsc, и если я запускаю SHOW TABLES; на ней, это результаты:

mysql> show tables;
+------------------------------------+
| Tables_in_apsc                     |
+------------------------------------+
| aps_application                    |
| aps_application_backup             |
| aps_application_resource           |
| aps_package                        |
| aps_package_configuration          |
| aps_package_global_setting         |
| aps_package_resource_configuration |
| aps_package_resource_setting       |
| aps_package_series                 |
| aps_package_service                |
| aps_registry_object                |
| aps_registry_object_setting        |
| aps_registry_object_tag            |
| aps_resource                       |
| aps_resource_backup                |
| aps_resource_requirement           |
| aps_resource_requirement_backup    |
| aps_settings_sequenses             |
+------------------------------------+
18 rows in set (0.00 sec)

Однако, если я запускаю SELECT * FROM aps_application, я получаю это:

mysql> SELECT * FROM aps_application;
ERROR 1146 (42S02): Table 'apsc.aps_application' doesn't exist

В моем каталоге /var/lib/mysql/apsc/ находится куча файлов .frm, из-за чего я считаю, что эти таблицы InnoDB.Однако, если они были просто повреждены или отсутствовали в файлах данных / журналов в /var/lib/mysql/apsc/ibdata1, они должны отображаться как table in use или нет, поскольку у меня недавно была такая проблема с другими таблицами InnoDB.

Я считаю, что эти таблицы являются частью Plesk, так как в какой-то момент я перезаписал файлы баз данных и получил ошибки об отсутствующем представлении aps_application.Plesk теперь работает нормально, поэтому я сомневаюсь, что таблица повреждена.

Кроме того, SHOW CREATE TABLE aps_application и SHOW CREATE VIEW aps_application оба дают сбой с той же ошибкой, что и select.

Edit: IЯ вошел в систему как пользователь root с полными разрешениями. Чтобы проверить это, я переключил таблицы и SELECT работал как чудо.Кроме того, если я нахожусь в phpMyAdmin и выбираю эту базу данных, она показывает 0 таблиц, если я не запускаю SHOW TABLES;на вкладке SQL;

Ответы [ 3 ]

2 голосов
/ 22 июля 2011

хорошо, вот здесь, в темноте, но что, если вы полностью определите название таблицы? также попытайтесь изменить имя таблицы, поставив после имени '_', и посмотрите, сможете ли вы его выбрать.

1 голос
/ 10 октября 2014

У меня была похожая проблема. В моем случае это была чувствительность к регистру. select * from users отличается от select * from USERS. Поэтому, возможно, вы можете попробовать использовать имя таблицы в верхнем регистре или регистр, с которым она была создана.

0 голосов
/ 11 июня 2012

Оказывается, они не были столами, и я так и не понял, что они: (

...