6

我有一个名为的数据库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 相同的错误。

编辑:我以具有完全权限的 root 身份登录。为了检查这一点,我切换了表格并且 SELECT 就像一个魅力一样工作。此外,如果我在 phpMyAdmin 中并选择此数据库,它会显示 0 个表,除非我运行 SHOW TABLES;在 SQL 选项卡中;

4

3 回答 3

2

好的,在这里暗中刺伤,但是如果您完全限定表名怎么办?另外,尝试通过在名称后添加“_”来更改表名,然后查看是否可以选择它。

于 2011-07-21T20:43:43.827 回答
1

我有一个类似的问题。就我而言,这是区分大小写的。select * from users不同于select * from USERS. 因此,也许您可​​以尝试使用大写的表名或创建它的大小写。

于 2014-10-10T12:39:16.977 回答
0

原来它们不是桌子,我从来没有真正弄清楚它们是什么:(

于 2012-06-11T13:17:37.110 回答