数据库表存在,但 MYSQL 说不存在

数据库表存在,但 MYSQL 说不存在

当我登录 MySQL 并显示表时,我会看到表的列表。但是,当我对其中任何一个运行查询时,我收到以下消息:

错误 1146 (42S02):表“dbname.tablename”不存在

如果我对其中任何一个运行 CHECK TABLE,我会得到:

+------------------+-------+----------+---------------------------------------------------------------------+
| Table            | Op    | Msg_type | Msg_text                                                            |
+------------------+-------+----------+---------------------------------------------------------------------+
| dbname.tablename | check | Warning  | InnoDB: Tablespace is missing for table 'dbname/tablename' |
| dbname.tablename | check | Error    | Table 'dbname.tablename' doesn't exist                     |
| dbname.tablename | check | status   | Operation failed                                                    |
+------------------+-------+----------+---------------------------------------------------------------------+

在我的 /usr/local/mysql/data 目录中,我可以看到我的数据库目录包含.ibd每个表的源文件和文件。从它们的大小来看,它们似乎包含大量数据。

请原谅我问了一个之前有人问过的问题。我环顾四周,发现有类似的问题与移动或删除文件有关。我都没做过。我能想到的唯一发生的事情是关闭电源后重启,而没有完全关闭任何东西。

我在 Mac OS X 10.8.5 上运行 MYSQL 社区服务器 5.6.17。

巧合的是,我注意到一件奇怪的事情:我的 OS X 终端显示 unknowne4ce8f1e830c 作为我的主机名,而它曾经显示我的计算机名称。我想知道是不是某个路径出了问题。但这只是菜鸟的猜测,而且我很少使用终端。因此,它们很可能是两个不同的问题。

感谢您的帮助。

答案1

我解决了这个问题。我不太清楚原因。但是,问题肯定已经消失了。

主机名问题只是个幌子。一旦我转移到另一个网络,它就会改变。看来我停止和启动 mysql 的尝试没有奏效。我意识到,在得到以下信息后:

2014-06-18 12:17:39 39973 [注意] mysqld: 关闭完成

并检查 ps aux | grep mysql

它没有关闭。一旦我成功重启,问题就消失了。我不确定最初是什么原因造成的。但是,现在这不是问题了。

抱歉打扰你了。

相关内容