Error displaying the error page in joomla

1.4k views Asked by At

My site is www.guru99.com . It runs on Joomla 3 latest version.

The issue is I am frequently getting an error like

“Error displaying the error page: Application Instantiation Error: Unknown storage engine 'InnoDB' SQL=SELECT `session_id` FROM `as23dc_session` WHERE `session_id` = '8590cce07a1ab1952edda6d4c479ad28' LIMIT 0, 1”

Then I will do a MySQL re-start and the issue will resolve.

The problem is the error occurs anytime and I am not always available to debug.

I am on a dedicated server so server with cloudlinux and have allocated 3GB physical memory and 3 cores to this account. Still the issue.

Please guide where am I am going wrong and what I need to fix?

1

There are 1 answers

0
Sahil Purav On

There is a reason why INNODB engine is absent from MySQL. If your innodb_buffer_pool_size variable is too high and MySQL can't allocate the buffer it will disable the INNODB engine.

You should see something like this in the error log :

140204 13:12:26  InnoDB: Initializing buffer pool, size = 4.9G
140204 13:12:26  InnoDB: Error: cannot allocate 5242896384 bytes of
InnoDB: memory with malloc! Total allocated memory
InnoDB: by InnoDB 36878736 bytes. Operating system errno: 12
InnoDB: Check if you should increase the swap file or
InnoDB: ulimits of your operating system.
InnoDB: On FreeBSD check you have compiled the OS with
InnoDB: a big enough maximum process size.
InnoDB: Note that in most 32-bit computers the process
InnoDB: memory space is limited to 2 GB or 4 GB.
InnoDB: We keep retrying the allocation for 60 seconds...
140204 13:13:26InnoDB: Fatal error: cannot allocate the memory for the buffer pool
140204 13:13:26 [ERROR] Plugin 'InnoDB' init function returned error.
140204 13:13:26 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.

This error was logged on a server with 1GB of RAM while the buffer pool request 4.9G

Also, Make sure the mysql user can write to /tmp. I got 'Unknown table engine InnoDB' after restore where /tmp was not writable for that user.

There might be no engine 'InnoDBopt'

Try show engines;

If mysql return something like

+------------+----------+----

| Engine     | Support  | ...

+------------+----------+----

| InnoDB     | DISABLED | ...

Most likely engine innodb has been disabled. Look for option skip-innodb in your mysql configuration (such as my.cnf), comment out this option, restart mysql daemon, it should fix