WordPress网站出现Error establishing a database connection原因及解决方法

  • A+
所属分类:技术

WordPress网站出现Error establishing a database connection(建立数据库连接时出错),重启服务器或者用service mysqld restart命令(MySQL数据库)或者systemctl restart mariadb.service命令(MariaDB数据库)可以暂时解决问题,过一段时间还会出现。

出现问题的服务器配置:1G内存,1核CPU,1M宽带。

分析原因可能是Apache2占用内存过高,MySQL/MariaDB运行一段时间后会自动退出所致。

个人的解决方法是直接扩大了服务器内存,增加到了2GB内存,之后就没出现过这个问题了。最后更新时间2020年1月18日。

以下是其他网友的一些解决方法,可能存在不足,请自行判断,仅供参考。

解决方法:
1、将Apache2换成Nginx或其他轻量级Web服务器。
2、不想更换Apache2的可以增大服务器物理内存或添加Swap交换文件。
3、不想更换Apache2也不想增加服务器物理内存,且网站访问量不大,可以尝试修改Apache2配置文件(文件路径/etc/httpd/conf/httpd.conf)。Apache2目前有三种稳定的MPM(Multi-Processing Module,多进程处理模块)模式,分别是prefork,worker和event。(查看Apache2的MPM模式,可以使用httpd -V命令。)

编辑/etc/httpd/conf/httpd.conf文件,添加下面内容:

<IfModule mpm_prefork_module>
StartServers 5
MinSpareServers 5
MaxSpareServers 10
ServerLimit 100
MaxRequestWorkers 100
MaxConnectionsPerChild 2000
</IfModule>

说明:

<IfModule mpm_prefork_module>
StartServers 5 #推荐设置:小=默认 中=20~50 大=50~100
MinSpareServers 5 #推荐设置:与StartServers保持一致
MaxSpareServers 10 #推荐设置:小=20 中=30~80 大=80~120
ServerLimit 150 #推荐设置:小=500 中=500~1500 大型=1500~3000
MaxRequestWorkers 150 #推荐设置:小=500 中=500~1500 大型=1500~3000
MaxRequestsPerChild 0 #推荐设置:小=10000 中或大=10000~500000
</IfModule>
备注:在Apache2.3.13以前的版本MaxRequestWorkers被称为MaxClients。此外,设置ServerLimit参数最好与MaxRequestWorkers的值保持一致。

参考资料:

0、https://www.itbulu.com/wp-database-connection.html

1、https://www.cnblogs.com/LUO77/p/5821530.html

2、https://www.mybj123.com/1314.html

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: