我不知道发生了什么事.我有一张叫做的桌子project_share_invite.几个小时前(在我们的生产环境中)我不能再对这个表发出SELECT.MySQL声称该表不存在,尽管它显示在上面show tables.今天在机器上发生的唯一值得注意的事件是例行程序包升级(通过apt).
mysql> use analytics;
Database changed
mysql> show tables like 'project_share_invite';
+--------------------------------------------+
| Tables_in_analytics (project_share_invite) |
+--------------------------------------------+
| project_share_invite                       |
+--------------------------------------------+
1 row in set (0.00 sec)
mysql> select count(*) from project_share_invite;
ERROR 1146 (42S02): Table 'analytics.project_share_invite' doesn't exist
想法?这对我没有任何意义.
更新:表的文件仍然存在于磁盘上(project_share_invite.frm并project_share_invite.idb分别)并且其中包含内容.
MySQL的快速重启并没有解决这个问题.
更新:使用root帐户而不是特定用户帐户时的结果相同.
更新:我也无法重新创建表.
CREATE TABLE `analytics`.`project_share_invite` ( ... )
ERROR 1146 (42S02): Table 'analytics.project_share_invite' doesn't exist
更新:应该先检查错误日志:
InnoDB: Load table 'analytics/project_share_invite' failed, the table has missing foreign key indexes. 
虽然我不知道它是如何在这种状态下得到的.
看起来你在MySQL中遇到存在外键约束的已知错误,但关联的索引被删除了.请参阅:http: //bugs.mysql.com/bug.php?id = 68148
根据MySQL的版本(似乎您需要5.6或>),您可以通过关闭外键检查然后重新创建缺失的索引来解决此问题.
SET FOREIGN_KEY_CHECKS=0;
您应该使用SHOW CREATE TABLE检查结构 table name
然后使用CREATE INDEX重新创建缺少的索引.
| 归档时间: | 
 | 
| 查看次数: | 3498 次 | 
| 最近记录: |