InnoDB:致命错误:无法为缓冲池分配内存

InnoDB:致命错误:无法为缓冲池分配内存

MySQL 似乎经常崩溃,大约每小时一次。

此服务器上唯一使用 MySQL 的程序是我正在使用的 Drupal 安装,只有一个人在使用它,它实际上只有大约三页 - 从我收集的信息来看,这似乎是 innoDB 的内存问题?我不擅长这个,所以我不确定。

有什么指导吗?以下是我的 error.log 中的相关部分

140216 14:20:01 [Note] Plugin 'FEDERATED' is disabled.
140216 14:20:01 InnoDB: The InnoDB memory heap is disabled
140216 14:20:01 InnoDB: Mutexes and rw_locks use GCC atomic builtins
140216 14:20:01 InnoDB: Compressed tables use zlib 1.2.3.4
140216 14:20:01 InnoDB: Initializing buffer pool, size = 128.0M
InnoDB: mmap(135987200 bytes) failed; errno 12
140216 14:20:01 InnoDB: Completed initialization of buffer pool
140216 14:20:01 InnoDB: Fatal error: cannot allocate memory for the buffer pool
140216 14:20:01 [ERROR] Plugin 'InnoDB' init function returned error.
140216 14:20:01 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
140216 14:20:01 [ERROR] Unknown/unsupported storage engine: InnoDB
140216 14:20:01 [ERROR] Aborting

140216 14:20:01 [Note] /usr/sbin/mysqld: Shutdown complete

140216 14:20:02 [Note] Plugin 'FEDERATED' is disabled.
140216 14:20:02 InnoDB: The InnoDB memory heap is disabled
140216 14:20:02 InnoDB: Mutexes and rw_locks use GCC atomic builtins
140216 14:20:02 InnoDB: Compressed tables use zlib 1.2.3.4
140216 14:20:02 InnoDB: Initializing buffer pool, size = 128.0M
InnoDB: mmap(135987200 bytes) failed; errno 12
140216 14:20:02 InnoDB: Completed initialization of buffer pool
140216 14:20:02 InnoDB: Fatal error: cannot allocate memory for the buffer pool
140216 14:20:02 [ERROR] Plugin 'InnoDB' init function returned error.
140216 14:20:02 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
140216 14:20:02 [ERROR] Unknown/unsupported storage engine: InnoDB
140216 14:20:02 [ERROR] Aborting

140216 14:20:02 [Note] /usr/sbin/mysqld: Shutdown complete

编辑
该服务器是最低规格的 DigitalOcean Droplet,具有 512MB RAM。这个特定的 Droplet 运行 NodeJS、MySQL 和 Apache。有一个低流量的静态网站、一个 Ghost 博客和我正在开发的这个 Drupal 网站。

我是否应该升级 RAM,或者我可以做些什么来解决这个问题?

答案1

MySQL 无法启动,因为它无法为 InnoDB 缓冲池分配 128M。

您必须设置较低的 innodb_buffer_pool_size 或限制 Apache 进程的数量,以便它们不会消耗所有内存。我遇到了同样的问题,并在一个博客

相关内容