未知/不受支持的存储引擎: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目录的权限,以确保它拥有所有权,并且我也重命名了previou ib_logs,以便它可以重新制作它们。 我只是在看到谷歌的结果2个小时后,没有得到这个问题的地方。

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

     [ERROR] Unknown/unsupported storage engine: InnoDB 

    我删除了这些文件:

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

    /var/lib/mysql

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

    如果你真的需要skip-innodb (用例:内存占用less),那么当然你不必评论它。 但是,如果InnoDB是默认的存储引擎,服务器将无法启动,直到您告诉它将使用哪个存储引擎,例如,对于MyISAM, default-storage-engine=myisam

    所以,试试这个:

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

    如果您使用的是MySQL 5.6以上版本,并且要禁用InnoDB,请不要忘记“ –default-tmp-storage ”,否则它将不起作用:

    要禁用InnoDB,请使用–innodb = OFF或–skip-innodb。 在这种情况下,因为默认存储引擎是InnoDB,所以服务器将不会启动,除非您还使用–default-storage-engine和–default-tmp-storage-engine将默认值设置为某个其他引擎临时表。

    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:初始化缓冲池,大小= 128.0M
     InnoDB:mmap(137363456字节)失败;  errno 12
     [错误] InnoDB:无法为缓冲池分配内存 

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

    编辑configuration文件/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 

    保存configuration文件,并启动mysql

     sudo service mysql start 

    尝试2件事。 1.降低innodb缓冲池大小。 2.编辑mysql初始脚本并添加–innodb选项。

    我也想知道如果你的包是越野车。 你可以尝试一个不同的小版本?

    另外,我假设你的mysql服务器也升级了? 也许那个版本坏了? 精确还不是最终的。

    我删除了我用于tmpdir的位置时出现此错误。 如果您最近更改了tmpdir ,则可能需要检查它是否是有效的可写位置。