Gar*_*ett 54 mysql ubuntu innodb
我最近从以前的 LTS Ubuntu 升级到 Precise,现在 mysql 拒绝启动。当我尝试启动它时,它会抱怨以下内容:
?$ sudo service mysql restart
stop: Unknown instance:
start: Job failed to start
Run Code Online (Sandbox Code Playgroud)
这显示在“/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
Run Code Online (Sandbox Code Playgroud)
我已经检查了所有 mysql 目录的权限以确保它拥有所有权,并且我还重命名了之前的 ib_logs 以便它可以重新制作它们。在查看了 2 个小时的谷歌结果后,我现在对这个问题一无所知。
小智 53
检查日志后,我发现以下错误:
[ERROR] Unknown/unsupported storage engine: InnoDB
Run Code Online (Sandbox Code Playgroud)
我删除了这些文件:
rm /var/lib/mysql/ib_logfile0
rm /var/lib/mysql/ib_logfile1
Run Code Online (Sandbox Code Playgroud)
在 /var/lib/mysql
这在重新启动后解决了我的问题。
小智 23
如果您确实需要skip-innodb(用例:低内存占用),那么您当然不必将其注释掉。但是,如果 InnoDB 是默认存储引擎,服务器将无法启动,直到您告诉它使用哪个存储引擎来代替,例如default-storage-engine=myisamMyISAM。
所以,试试这个:
$ sudo -u mysql mysqld --skip-innodb --default-storage-engine=myisam
Run Code Online (Sandbox Code Playgroud)
小智 12
如果您使用 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
Run Code Online (Sandbox Code Playgroud)
只是为了确保它会起作用。
小智 9
检查您的 mysql 错误日志。
tail -100 /var/log/mysql/error.log
Run Code Online (Sandbox Code Playgroud)
如果您的日志显示(就像我的那样):
InnoDB:初始化缓冲池,大小 = 128.0M InnoDB:mmap(137363456 字节)失败;错误号 12 [错误] InnoDB:无法为缓冲池分配内存
您没有足够的内存来使用默认的 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
Run Code Online (Sandbox Code Playgroud)
保存配置文件,启动mysql
sudo service mysql start
Run Code Online (Sandbox Code Playgroud)
joh*_*n64 -1
再尝试 2 件事。1. 降低innodb缓冲池大小。2.编辑mysql初始脚本并添加--innodb选项。
我还想知道你的包裹是否有问题。您可以尝试不同的次要版本吗?
另外,我假设你的mysql服务器也升级了?也许那个版本坏了?具体还没有最终确定。
| 归档时间: |
|
| 查看次数: |
151894 次 |
| 最近记录: |