• This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn more.

XF 1.3 Mysqli prepare error: Unknown storage engine 'InnoDB'


Active member
This is the error I'm getting on my XF page:

Mysqli prepare error: Unknown storage engine 'InnoDB'

    1. Zend_Db_Statement_Mysqli->_prepare() in Zend/Db/Statement.php at line 115
    2. Zend_Db_Statement->__construct() in Zend/Db/Adapter/Mysqli.php at line 381
    3. Zend_Db_Adapter_Mysqli->prepare() in Zend/Db/Adapter/Abstract.php at line 478
    4. Zend_Db_Adapter_Abstract->query() in XenForo/Model.php at line 219
    5. XenForo_Model->fetchAllKeyed() in XenForo/Model/Forum.php at line 133
    6. XenForo_Model_Forum->getExtraForumDataForNodes() in XenForo/NodeHandler/Forum.php at line 85
    7. XenForo_NodeHandler_Forum->getExtraDataForNodes() in XenForo/Model/Node.php at line 571
    8. XenForo_Model_Node->mergeExtraNodeDataIntoNodeList() in XenForo/Model/Node.php at line 773
    9. XenForo_Model_Node->getNodeListDisplayData() in XenForo/Model/Node.php at line 745
    10. XenForo_Model_Node->getNodeDataForListDisplay() in XenForo/ControllerPublic/Forum.php at line 40
    11. XenForo_ControllerPublic_Forum->actionIndex() in WidgetFramework/XenForo/ControllerPublic/Forum.php at line 13
    12. WidgetFramework_XenForo_ControllerPublic_Forum->actionIndex() in XenForo/FrontController.php at line 347
    13. XenForo_FrontController->dispatch() in XenForo/FrontController.php at line 134
    14. XenForo_FrontController->run() in /home/cortjohn/public_html/forums/index.php at line 13

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 '' 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): ''; port: 3306
150117 21:38:39 [Note]   - '' resolves to '';
150117 21:38:39 [Note] Server socket created on IP: ''.
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..

Could the innodb_buffer_pool_size be insufficient? I have 4 GB RAM and am running a WP instance too.

Luke F

Well-known member
InnoDB: mmap(127713280 bytes) failed; errno 12
errno 12 is out of memory, i.e. there isn't enough memory available for innodb to initialise

You need to find some way of increasing the available memory, be it capping the number of simultaneous php processes, reducing the memory allocated to myisam engine, adding/increasing a swapfile, etc.