gpt4 book ai didi

MySQL 无法从现有表中进行选择,因为它不存在?

转载 作者:可可西里 更新时间:2023-11-01 07:48:10 24 4
gpt4 key购买 nike

我不知道发生了什么。我有一个名为 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.frmproject_share_invite.idb)并且其中有内容。

快速重启 MySQL 并没有解决这个问题。

更新:使用根帐户而不是特定用户帐户时结果相同。

更新:我也无法重新创建表格。

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重新创建丢失的索引。

关于MySQL 无法从现有表中进行选择,因为它不存在?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26044967/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com