显示表状态不显示 innodb 表

显示表状态不显示 innodb 表

服务器重启后,我注意到 phpMyAdmin 没有显示我的 innodb 表,只显示 myisam。

我直接登录到 mysql 服务器,当 show tables 显示 innodb 表时,当我使用“show table status from mydb”时,inndb 表却不存在。

为什么它们突然不显示了?重启之前它们就是这样的。

此外,它们显示在“显示表”中,但尝试进行选择却表明它们不存在。

答案1

您应该运行的第一个查询是 SHOW ENGINES;

如果 InnoDB 的支持列显示 DISABLED,那么 mysqld.log 应该会告诉您是什么禁用了它。

SHOW TABLES 最有可能只遍历 INFORMATION_SCHEMA.TABLES

一旦你试图确定有关 InnoDB 表的信息,需要访问 ibdata1 文件以获取元数据,它就会崩溃并且找不到任何 InnoDB 表。我记得有一次请求了太多的 InnoDB 缓冲池,但我没有足够的内存。Percona 二进制文件在这方面更迟钝,因为 mysqld 根本无法启动。这比在半生不熟的状态下启动 MySQL 要好得多。

下次 InnoDB 似乎出现故障时,立即运行 SHOW ENGINES 并检查错误日志!

相关内容