当前位置: 首页>>技术教程>>正文


未知/不受支持的存储引擎:InnoDB | MySQL Ubuntu

, ,

问题描述

我最近从以前的LTS Ubuntu升级到了Precise,现在mysql拒绝启动。当我尝试启动它时,它抱怨以下内容:

╰$ sudo service mysql restart
stop: Unknown instance:
start: Job failed to start

这在”/var/log/mysql/error.log”中显示:

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

120415 23:01:09 [Note] /usr/sbin/mysqld: Shutdown complete

我已经检查了所有mysql目录的权限,以确保它具有所有权,并且我还重命名了上一个ib_logs,以便它可以重新制作它们。在查看Google搜索结果2小时后,我现在暂时无法解决此问题。

最佳思路

检查日志后,我发现以下错误:

[ERROR] Unknown/unsupported storage engine: InnoDB

我删除了这些文件:

rm /var/lib/mysql/ib_logfile0
rm /var/lib/mysql/ib_logfile1 

/var/lib/mysql

重新启动后,这解决了我的问题。

次佳思路

如果您确实需要skip-innodb(用例:低内存占用),那么您当然不必注释掉。但是,如果InnoDB是默认的存储引擎,则服务器将无法启动,直到您告诉它要使用哪个存储引擎为止,例如适用于MyISAM的default-storage-engine=myisam

因此,请尝试以下操作:

$ sudo -u mysql mysqld --skip-innodb --default-storage-engine=myisam

第三种思路

如果您使用的是MySQL 5.6+,并且想禁用InnoDB,请不要忘记”–default-tmp-storage”,否则它将无法正常工作:

To disable InnoDB, use –innodb=OFF or –skip-innodb. In this case, because the default storage engine is InnoDB, the server will not start unless you also use –default-storage-engine and –default-tmp-storage-engine to set the default to some other engine for both permanent and TEMPORARY tables.

http://dev.mysql.com/doc/refman/5.6/en/innodb-parameters.html#option_mysqld_ignore-builtin-innodb

您可以将其添加到my.cnf中:

[mysqld] 
innodb=OFF 
ignore-builtin-innodb 
skip-innodb
default-storage-engine=myisam 
default-tmp-storage-engine=myisam

只是为了确保它能正常工作。

第四种思路

检查您的mysql错误日志。

tail -100 /var/log/mysql/error.log

如果您的日志说(像我的一样):

InnoDB: Initializing buffer pool, size = 128.0M InnoDB: mmap(137363456 bytes) failed; errno 12 [ERROR] InnoDB: Cannot allocate memory for the buffer pool

您没有足够的内存来使用默认的128M缓冲区大小

编辑配置文件/etc/mysql/my.cnf,添加一行以指定较小的innodb_buffer_pool_size。

# make the buffer pool smaller than 128M since we only have 1 GB of total RAM
innodb_buffer_pool_size = 16M

保存配置文件,并启动mysql

sudo service mysql start

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/9552.html,未经允许,请勿转载。