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守护进程,它应该修复
这不完全是一个***编程问题*** ,并且是堆栈溢出的主题。这个问题更适合http://webapps.stackexchange.com/或http://webmasters.stackexchange.com/ .. – cybermonkey 2014-11-21 11:38:13