我刚刚查看了我网站的一个数据库,注意到所有的表都被转换成了MyISAM (它们曾经是InnoDB)。
更重要的是,InnoDB似乎与BerkeleyDB、Federated等一起缺失了。
几个月前,我从MySql 5.0升级到5.1.38。我无法想象,如果在升级后没有安装InnoDB,我不会注意到这一点,但也许升级后就是这样了。在我看来,让几个10 GB的表自动转换为MyISAM而不知道任何停机时间似乎是不太可能的。
无论如何,mysql系统变量have_innodb都设置为NO。我是否可以简单地将其更改为YES,或者这是否意味着安装中缺少InnoDB?
发布于 2011-05-25 20:57:49
可能InnoDB参数在升级过程中发生了更改?来自MySQL论坛的这个建议帮助我遇到了类似的情况:http://forums.mysql.com/read.php?22,397052,408970
简而言之:停止MySQL守护进程,从datadir中删除ib_logfile*,重新启动MySQL。
发布于 2009-12-06 06:13:48
如果SHOW ENGINES中的字段为"no“,则表示它没有编译进来。您必须重新编译服务器,编译innodb plugin并加载它,或者获取启用了它的服务器二进制文件。
发布于 2009-12-06 19:55:42
您不能简单地将mysql系统变量设置为YES来将表从MyISAM转换为InnoDB。
ALTER TABLE t1 ENGINE=InnoDB;当关闭InnoDB支持时,即使您在create table语句中使用ENGINE=InnoDB,该表也将使用MySQL的默认存储引擎,该引擎通常为MyISAM。
https://stackoverflow.com/questions/1853474
复制相似问题