我最近从之前的 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,以便它可以重新制作它们。在谷歌上搜索了 2 个小时后,我现在对这个问题一无所知。
答案1
检查日志后我发现以下错误:
[ERROR] Unknown/unsupported storage engine: InnoDB
我删除了这些文件:
rm /var/lib/mysql/ib_logfile0
rm /var/lib/mysql/ib_logfile1
在/var/lib/mysql
重启后这解决了我的问题。
答案2
如果你确实需要skip-innodb
(用例:低内存占用),那么当然你不必将其注释掉。但是,如果 InnoDB 是默认存储引擎,则服务器将无法启动,直到你告诉它要使用哪个存储引擎,例如default-storage-engine=myisam
MyISAM。
那么,尝试一下这个:
$ sudo -u mysql mysqld --skip-innodb --default-storage-engine=myisam
答案3
如果你正在使用 MySQL 5.6+ 并且想要禁用 InnoDB,请不要忘记“--默认-tmp 存储“否则它将不起作用:
要禁用 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
只是为了确保它能正常工作。
答案4
我在现代 MariaDB 10.5 系统上遇到此错误,因为我忘记了 innodb 控制行上的单位;
innodb_buffer_pool_size = 4096
innodb_log_file_size = 1024
代替
innodb_buffer_pool_size = 4096MB
innodb_log_file_size = 1024MB
所以,如果你拿到了这个,检查一下