2015-12-18 38 views
1

我们的Wordpress网站每天都会停止响应,页面开始返回可怕的'建立数据库连接错误'。 MySQL日志中没有任何内容,并且我不知道是什么导致了这个问题。我们没有很多网站访问者,并且该机器是中型EC2实例。任何人有任何想法如何解决这个问题?疯狂间歇性Wordpress:建立数据库连接时出错

+0

检查错误日志,也 - 这是一个类似一天中的时间? 你正在使用缓存(WP超级缓存等)? – Nick

回答

0

这里没有太多的工作。但是......我的微型实例有同样的问题。我的问题是服务器内存不足,然后mysql服务器将停止。当重新启动计算机时它会重新启动,但它再次崩溃只是时间问题。

这是我在我的MySQL日志中得到的。

151023 6:15:44 InnoDB: Initializing buffer pool, size = 128.0M 
InnoDB: mmap(137363456 bytes) failed; errno 12 
151023 6:15:44 InnoDB: Completed initialization of buffer pool 
151023 6:15:44 InnoDB: Fatal error: cannot allocate memory for the buffer pool 
151023 6:15:44 [ERROR] Plugin 'InnoDB' init function returned error. 
151023 6:15:44 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed. 
151023 6:15:44 [ERROR] Unknown/unsupported storage engine: InnoDB 
151023 6:15:44 [ERROR] Aborting 

您可能想要检查类似的东西。我使用Ubuntu,日志默认为/var/log/mysql/

我通过按照Amazon EC2, mysql aborting start because InnoDB: mmap (x bytes) failed; errno 12设置交换文件解决了这个问题。 AWS实例默认不提供交换空间设置(而我今天从Ubuntu下载的安装)。你需要手动设置它。这里的方法 -

ssh到您的AWS实例。然后:

  1. 运行dd if=/dev/zero of=/swapfile bs=1M count=1024
  2. 运行mkswap /swapfile
  3. 运行swapon /swapfile
  4. 此行/swapfile swap swap defaults 0 0加入/etc/fstab

阅读更多详细信息链接的问题。希望有所帮助!

1

我有一个间歇性崩溃的MySQL类似的问题。原来是Apache配置。机器人粗暴地强制网站并最终导致Apache崩溃(检查您的日志:$ cat /var/log/apache2/access.log)。 Apache自动重新启动,但没有足够的备用内存来重新启动MySQL,因此数据库连接错误。简短的解决方法是减少Apache中RequestWorkers的数量,以更好地适应您拥有的RAM数量。

您可以使用Apache2Buddy在您的apache配置上运行诊断。它会计算有多少阿帕奇工人可以运行给你的RAM数量以及有多大你的应用程序是: $ curl -L http://apache2buddy.pl/ | perl

它可能会建议(在较旧的Apache系统或MaxClients的)改变MaxRequestWorkers在MPM- Prefork配置。该文件在我的系统上是/etc/apache2/mods-available/mpm_prefork.conf。在将值改为Apache2Buddy建议的值后,只需重新启动Apache即可。

我写了一篇关于这种情况的文章,如果你想有一个更深入的解释,强调测试程序,或者如何阻止某些机器人业务的思路方法:http://brunzino.github.io/blog/2016/05/21/solution-how-to-debug-intermittent-error-establishing-database-connection/

相关问题