mysql服务器彻底关闭innodb存储引擎
2014-07-29 17:57:31 阿炯

在网上找到不少办法,大致分为两步:
一、设置默认的存储引擎为MyISAM
二、设置禁用InnoDB

在5.1之前是这样的
 default-storage-engine=MyISAM
 skip-innodb
    
也有像如下的
 default-storage-engine=MyISAM
 loose-skip-innodb

5.5以后就改为loose-skip-innodb。

事实上述两种方案都是不对的,配置后MySQL都是无法正常启动的,查看主要错误日志如下:

[Note] Plugin 'InnoDB' is disabled.
[Note] Plugin 'FEDERATED' is disabled.
[ERROR] Unknown/unsupported storage engine: InnoDB
[ERROR] Aborting


在mysql的官方手册中,有对如何真正地关闭innodb插件,可以从这里参考:http://dev.mysql.com/doc/refman/5.6/en/innodb-turning-off.html

必须按其提供的方法来关闭,否则可能会造成mysql崩溃。所以在my.cnf配置文件的[mysqld]部分加入下面的语句。

default-storage-engine=MyISAM
default-tmp-storage-engine=MYISAM
loose-skip-innodb

loose-innodb-trx=0
loose-innodb-locks=0
loose-innodb-lock-waits=0
loose-innodb-cmp=0
loose-innodb-cmp-per-index=0
loose-innodb-cmp-per-index-reset=0
loose-innodb-cmp-reset=0
loose-innodb-cmpmem=0
loose-innodb-cmpmem-reset=0
loose-innodb-buffer-page=0
loose-innodb-buffer-page-lru=0
loose-innodb-buffer-pool-stats=0
loose-innodb-metrics=0
loose-innodb-ft-default-stopword=0
loose-innodb-ft-inserted=0
loose-innodb-ft-deleted=0
loose-innodb-ft-being-deleted=0
loose-innodb-ft-config=0
loose-innodb-ft-index-cache=0
loose-innodb-ft-index-table=0
loose-innodb-sys-tables=0
loose-innodb-sys-tablestats=0
loose-innodb-sys-indexes=0
loose-innodb-sys-columns=0
loose-innodb-sys-fields=0
loose-innodb-sys-foreign=0
loose-innodb-sys-foreign-cols=0

添加好之后再重启MySQL服务器,然后你就能看到InnoDB已经被彻底禁用了(show engines\G)。