每天或使我们的WordPress网站停止响应,页面开始回归可怕的“错误建立数据库连接”。没有什么在MySQL日志,我在茫然,这可能是导致该问题。我们没有很多的网站访问者,并且该机是一款中型EC2实例。人对如何解决这个任何想法?
有没有一个整体很多在这里工作。但是...我有我的微实例同样的问题。我的问题是,服务器保持运行内存,然后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实例。然后:
dd if=/dev/zero of=/swapfile bs=1M count=1024
mkswap /swapfile
swapon /swapfile
/swapfile swap swap defaults 0 0
到/etc/fstab
阅读更多信息链接的问题。希望帮助!
我曾与MySQL的间歇性崩溃类似的问题。它原来是Apache的配置。机器人被暴力破解的网站,并最终导致Apache的崩溃(检查你的日志:$ cat /var/log/apache2/access.log
)。 Apache的自动重新启动,但没有足够的空闲内存来重启MySQL过,因此数据库连接错误。短期的解决办法是减少的Apache RequestWorkers的数量,以更好地适应你拥有的内存量。
您可以使用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/
当我试图安装本地的wordpress同样的错误
错误建立数据库连接
发生,因为我忘记停止其在XAMPP启动SQL和Apache。我停下来,并重新安装WordPress的用于Windows和它的工作。