0

我使用 alter 命令将我的一张表的引擎从 InnoDB 更改为 MyIASM,phpmyadmin 显示当前引擎是 MyIASM。但是在相应的 DB 目录中的 /var/lib/mysql 中,仅找到该表的 .frm 文件 .MYD 和 .MYI 丢失。我怀疑引擎没有改变。请建议必须做什么。

4

1 回答 1

0

要验证表是否确实已更改问题:

SHOW CREATE TABLE your_schema.your_table \G

寻找ENGINE=...零件。还有其他方法可以做到这一点,但这个很好。这个查询的结果是可靠的并且呈现了事实。

接下来,让我们验证位置。由于您可以找到该.FRM文件,因此您很可能在正确的位置,但是让我们:

SELECT @@datadir;

看看那里。

最后,MyISAM 表可以为数据和索引指定DATA DIRECTORY一个不同的位置,称为and INDEX DIRECTORY,并在 的结果中看到SHOW CREATE TABLE。我看不出为什么要设置这些,但是……值得一看。

只是猜测发生了什么:这是一张大桌子吗?也许只是花了一些时间ALTER,而您甚至在重建桌子时也在寻找?

于 2012-07-15T07:58:03.173 回答