Innodb – Mysqli prepare error: Unknown storage engine ‘InnoDB’

innodbstorage-engine

I'm getting this error on my XenForo installation. Server logs show out of memory because of too many php processes opened up which cause mysqld to shutdown. The WordPress installation associated with MyISAM works fine. The error goes away once I have restarted the mysql service. I'm unable to fix the issue. Would be grateful for some input!

MySQL logs:

..more similar errors above..
150117 20:18:56 [ERROR] Cannot find or open table wpdb/wp_wpsa_subscribe_author from
the internal data dictionary of InnoDB though the .frm file for the
table exists. Maybe you have deleted and recreated InnoDB data
files but have forgotten to delete the corresponding .frm files
of InnoDB tables, or you have moved .frm files to another database?
or, the table contains indexes that this version of the engine
doesn't support.

150117 21:24:38 [Warning] IP address '222.186.15.72' could not be resolved: Name or service not known
150117 21:38:35 mysqld_safe Number of processes running now: 0
150117 21:38:35 mysqld_safe mysqld restarted
150117 21:38:38 [Note] Plugin 'FEDERATED' is disabled.
150117 21:38:38 InnoDB: The InnoDB memory heap is disabled
150117 21:38:38 InnoDB: Mutexes and rw_locks use GCC atomic builtins
150117 21:38:38 InnoDB: Compressed tables use zlib 1.2.3
150117 21:38:38 InnoDB: Using Linux native AIO
150117 21:38:39 InnoDB: Initializing buffer pool, size = 119.0M
InnoDB: mmap(127713280 bytes) failed; errno 12
150117 21:38:39 InnoDB: Completed initialization of buffer pool
150117 21:38:39 InnoDB: Fatal error: cannot allocate memory for the buffer pool
150117 21:38:39 [ERROR] Plugin 'InnoDB' init function returned error.
150117 21:38:39 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
150117 21:38:39 [Note] Server hostname (bind-address): '0.0.0.0'; port: 3306
150117 21:38:39 [Note]   - '0.0.0.0' resolves to '0.0.0.0';
150117 21:38:39 [Note] Server socket created on IP: '0.0.0.0'.
150117 21:38:40 [Note] Event Scheduler: Loaded 0 events
150117 21:38:40 [Note] /usr/sbin/mysqld: ready for connections.
Version: '5.5.40-cll'  socket: '/var/lib/mysql/mysql.sock'  port: 3306  MySQL Community Server (GPL)
150117 21:38:40 [ERROR] /usr/sbin/mysqld: Table './wpdb/wp_wfConfig' is marked as crashed and should be repaired
150117 21:38:40 [ERROR] /usr/sbin/mysqld: Table './wpdb/wp_wfConfig' is marked as crashed and should be repaired
...more similar errors follow..

The logs at /var/log/messages show loads of PHP processes opened (50+) and server going out of memory, shutting down mysqld. I couldn't find anything that would be making so many processes stuck up. Could the mysql error before the crash occurs – "Cannot find or open table" be causing the error?

Best Answer

Error: mmap(127713280 bytes) failed; errno 12 : not enough memory to start the service:

Possible solutions:

  • add swap page

  • check innodb_buffer_pool_size value it may be too low to start the service or too high for the server

After that try to delete ib_logfile# then start the service