我在跑操作系统6和阿帕奇/PHP/MySQL。附言。我是 Linux 的新手,但在来到这里之前我尽了最大努力收集信息。我现在有点卡住了。
- 我最近将 PHP 升级到版本 5.5.12。
- 我之前已经将 MySQL 升级到了 5.6 版本。然而这个问题直到我后来做了上面提到的PHP升级之后才开始出现。
几乎每天,有时每天多次,我的网站将开始在浏览器中显示以下内容,而不是任何网站内容:
Connection Failed: 2002
我读到这可能是由 MySQL 生成的。该错误一直存在,直到我手动重新启动mysqld
。这种情况开始越来越频繁地发生,有时每小时几次。
以下是我的 MySQL 错误日志中其中一次发生的相关部分(它们看起来都像这样):
2014-07-28 11:22:46, , mysqld_safe, Number of processes running now: 0
2014-07-28 11:22:46, , mysqld_safe, mysqld restarted
2014-07-28 11:22:52, 0, Warning, TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2014-07-28 11:22:52, 1503, Note, Plugin 'FEDERATED' is disabled.
2014-07-28 11:22:52, 1503, Note, InnoDB: Using atomics to ref count buffer pool pages
2014-07-28 11:22:52, 1503, Note, InnoDB: The InnoDB memory heap is disabled
2014-07-28 11:22:52, 1503, Note, InnoDB: Mutexes and rw_locks use GCC atomic builtins
2014-07-28 11:22:52, 1503, Note, InnoDB: Compressed tables use zlib 1.2.3
2014-07-28 11:22:52, 1503, Note, InnoDB: Using Linux native AIO
2014-07-28 11:22:52, 1503, Note, InnoDB: Using CPU crc32 instructions
2014-07-28 11:22:52, 1503, Note, InnoDB: Initializing buffer pool, size = 128.0M
, , , InnoDB: mmap(137363456 bytes) failed; errno 12
2014-07-28 11:22:52, 1503, ERROR, InnoDB: Cannot allocate memory for the buffer pool
2014-07-28 11:22:52, 1503, ERROR, Plugin 'InnoDB' init function returned error.
2014-07-28 11:22:52, 1503, ERROR, Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
2014-07-28 11:22:52, 1503, ERROR, Unknown/unsupported storage engine: InnoDB
2014-07-28 11:22:52, 1503, ERROR, Aborting
这不是从mysqld
启动时的初始运行开始的——一开始就很好。它看起来像是mysqld
在随机时间重新启动(我不确定这是否正常?)并遇到此错误。
附言。我可以通过运行以下命令来触发错误:
$ valgrind mysqld
...在 SSH 控制台中返回:
1868 [ERROR] Fatal error: Please read "Security" section of the manual to find out how to run mysqld as root!
这以Connection Failed: 2002
相同的方式替换了我的网站,但我不确定这种情况是否与随机发生的原因相同。我想我应该提到这一点,以防它提供线索。