2014-11-21 159 views
-1

我的网站是www.guru99.com。它运行在Joomla 3最新版本上。显示joomla错误页面的错误

的问题是,我经常收到这样的错误

“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” 

然后,我会做一个MySQL重新启动,此问题会解决。

问题是随时会发生错误,而且我并不总是可以调试。

我在一台专用的服务器上,所以带有cloudlinux的服务器已经为此帐户分配了3GB物理内存和3个内核。仍然是问题。

请指导我哪里错了,我需要解决什么?

+0

这不完全是一个***编程问题*** ,并且是堆栈溢出的主题。这个问题更适合http://webapps.stackexchange.com/或http://webmasters.stackexchange.com/ .. – cybermonkey 2014-11-21 11:38:13

回答

1

MySQL没有INNODB引擎的原因。如果你的innodb_buffer_pool_size变量太高,MySQL不能分配缓冲区,它将禁用INNODB引擎。

你应该看到像这样在错误日志:

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. 

已登录的服务器上此错误搭配1GB的RAM,而缓冲池请求4.9G

同时,确保了MySQL用户可以写入/ tmp。在恢复/ tmp不可写入该用户后,我得到了'未知表引擎InnoDB'。

有可能是没有发动机 'InnoDBopt'

尝试show engines;

如果MySQL返回类似

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

| Engine  | Support | ... 

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

| InnoDB  | DISABLED | ... 

最有可能的引擎InnoDB的已被禁用。 在你的mysql配置(如my.cnf)中寻找选项skip-innodb, 注释掉这个选项, 重启mysql守护进程,它应该修复