【问题标题】:Maddening Intermittent Wordpress: Error establishing database connection令人发狂的间歇性 Wordpress:建立数据库连接时出错
【发布时间】:2016-03-25 06:31:40
【问题描述】:

每隔一天左右,我们的 Wordpress 网站就会停止响应,页面开始返回可怕的“建立数据库连接时出错”。 MySQL 日志中没有任何内容,我不知道是什么导致了这个问题。我们没有很多站点访问者,并且机器是一个 Medium EC2 实例。有人对如何解决此问题有任何想法吗?

【问题讨论】:

  • 检查错误日志,也是 - 这是一天中的相似时间吗?您是否在使用缓存(wp 超级缓存等)?

标签: mysql wordpress


【解决方案1】:

这里没有很多工作要做。但是......我的微型实例也有同样的问题。我的问题是服务器一直内存不足,然后 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

阅读链接的问题了解更多详情。希望对您有所帮助!

【讨论】:

    【解决方案2】:

    我遇到了 MySQL 间歇性崩溃的类似问题。原来是Apache配置。机器人对网站进行暴力破解,最终导致 Apache 崩溃(检查您的日志:$ cat /var/log/apache2/access.log)。 Apache 自动重启,但是没有足够的空闲内存来重启 MySQL,因此出现数据库连接错误。简短的解决方法是减少 Apache 中的 RequestWorker 数量,以更好地适应您拥有的 RAM 量。

    您可以使用 Apache2Buddy 对您的 apache 配置运行诊断。它会根据你拥有的 RAM 量和应用程序的大小来计算你可以运行多少 Apache Worker: $ curl -L http://apache2buddy.pl/ | perl

    它可能会建议在您的 MPM-Prefork 配置中更改 MaxRequestWorkers(或旧 Apache 系统上的 MaxClients)。该文件位于我系统上的/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/

    【讨论】:

      【解决方案3】:

      当我尝试安装本地 wordpress 时同样的错误

      建立数据库连接时出错

      发生是因为我忘记停止在 xampp 中启动的 SQLApache。我停止了它并为 Windows 重新安装了 wordpress 并且它起作用了。

      【讨论】:

        猜你喜欢
        • 2015-03-18
        • 2021-05-28
        • 1970-01-01
        • 2015-08-11
        • 2012-12-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多