我有一个名为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的错误。普列斯克现在工作得很好,所以我怀疑这张桌子是腐败的。
而且,SHOW CREATE TABLE aps_application和SHOW CREATE VIEW aps_application都失败了,错误与select相同。
编辑:我以root用户的身份登录,拥有完全的权限。为了检查这一点,我切换了表,并选择了“工作得很有魅力”。另外,如果我在phpMyAdmin中并选择这个数据库,它将显示0个表,除非我运行显示表;
发布于 2012-06-11 13:17:37
原来它们不是桌子,我从来不知道它们是什么
发布于 2011-07-21 20:43:43
好的,在黑暗中插入,但是如果您完全限定了表名呢?另外,尝试更改表名,在名称后面添加一个'_‘,然后查看是否可以选择它。
发布于 2014-10-10 12:39:16
我也有过类似的问题。在我的案例中,这是对案件的敏感。select * from users不同于select * from USERS。因此,也许您可以尝试使用大写的表名,或者用大小写创建表名。
https://stackoverflow.com/questions/6727997
复制相似问题