- 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