InnoDB: Fatal error: cannot allocate memory for the buffer pool

MySQL Seems to be crashing quite often, I'd say every hour or so.

The only thing running on this server that is using MySQL is a Drupal installation that I'm working on, there's only one person that's using it and it literally has around three pages - from what I can gather this seems to be a memory issue with innoDB? I'm not great at this stuff so I'm unsure.

Any guidance? Here's the relevant parts from my 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

EDIT
The server is the lowest-spec DigitalOcean Droplet with 512MB RAM. This particular Droplet is running NodeJS, MySQL and Apache. There's a low-traffic static site, a Ghost blog and this Drupal site I'm developing.

Should I just upgrade the RAM, or is there something I can do to fix this?


MySQL doesn't start because it cannot allocate 128M for the InnoDB buffer pool.

You have to either set lower innodb_buffer_pool_size or limit number of Apache processes so they don't consume all memory. I had the same problem and described it in a blog