我使用alter命令将我的一个表的引擎从InnoDB更改为MyIASM,而phpmyadmin显示当前引擎是MyIASM。 但是在相应的DB目录内的/ var / lib / mysql中,只找到该表的.frm文件.MYD和.MYI丢失了。我怀疑引擎没有改变。请说明必须做些什么。
答案 0 :(得分:0)
验证表格是否确实已更改问题:
SHOW CREATE TABLE your_schema.your_table \G
寻找ENGINE=...
部分。还有其他方法可以做到这一点,但这一个很好。这个查询的结果是可靠的并且是真实的。
接下来,让我们验证位置。既然您可以找到.FRM
文件,那么您最有可能在正确的位置,但请注意:
SELECT @@datadir;
然后看那里。
最后,MyISAM表可能specify是数据的一个不同位置。索引,称为DATA DIRECTORY
和INDEX DIRECTORY
,并在SHOW CREATE TABLE
的结果中看到。我看不出为什么会这样设置,但......值得一看。
只是猜测发生了什么:这是一张大桌子吗?也许只需要花费一些时间ALTER
,即使桌子正在重建,你也在看?