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