WordPress报error establishing a database connection错误如何解决

今天小编打开码云笔记时,发现网站打不开,页面并显示Error establishing a database connection错误,这是个什么鬼,虽然英文水平不怎么牛,但是大概的关键字认识,意思就是和数据库链接不上有关,网上一查也证实了我的想法翻译为“建立数据库连接时出错”。这可如何是好?如果对于不是很熟悉建站的小伙伴着实吓一跳,不知从何下手。网上百度一大堆解决方案也解决不了,都是千篇一律的东西,在网上找了相关资料也找朋友请教了一下,逐一排查原因,功夫不负有心人,最后终于找到解决办法,所以特意整理下来分享给大家,以免大家和我一样采坑。

WordPress 报 error establishing a database connection 错误如何解决

最简单的方法就是重启服务器或者用service mysqld restart命令(MySQL 数据库)或者systemctl restart mariadb.service命令(MariaDB 数据库)可以暂时解决问题,过一段时间还会出现。

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

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 的值保持一致。

恩,貌似还没有解决我的问题,那么,我们使用 WordPress 提供的调试机制来看看到底是哪里有问题吧!

首先应该做的是确保在站点的前端和站点的后端(wp-admin)上都得到相同的错误。如果错误消息在两个页面上都相同“建立数据库连接时出错”。我们可以按照下面的步骤执行。

在 wp-config.php 文件中添加以下代码:

define('WP_ALLOW_REPAIR', true);

保存以后,我们执行下面的 url 来访问:http://域名/wp-admin/maint/repair.php

访问该 URL 的主要功能是用来修复损坏的数据库。修改完成后,我们需要从 wp-config.php 文件中删除上面添加的代码。

如果您更改了 root 密码或数据库用户密码,那么您还需要更改此文件 wp-config.php。确保配置的数据库的用户名和密码都正确。

define('DB_NAME', '数据库名'); 
define('DB_USER', '数据库用户名'); 
define('DB_PASSWORD', '数据库密码'); 
define('DB_HOST', '主机');

注意在输入以上信息时不要输错。另外当我们的网站流量过大时,也会出现数据库连接错误。

如果同一个服务器上有多个服务,可以访问其他服务看看是否正常,判断是不是数据库服务器导致的。

网上的方法:

第一种:看你的 VPS 控制面板(一般宝塔或者 wdcp)能不能连上,如果你的控制面板连不上的话那就说明是你的 vps 中的 mysql 服务没有启动,所以这个时候你需要启动你的 mysql 服务即可。

启动服务如下service mysqld startservice pureftpd startservice wdapache startservice httpd startservice nginxd start

第二种:磁盘空间可能满了

是的,你的 vps 磁盘空间满了,也会导致 mysql 服务启动不起来,这个时候需要清理一下你的 vps 硬盘。

在 wdcp 里面你可以看到磁盘的数据使用量,用 putty 连接你的 VPS 也是可以查看的。

这个问题是我亲自遇到的。

另外还需要判断,你所使用的用户的权限是否足够。还有是否设置了拒绝远程连接。

最后,请注意任何操作数据库前,请注意备份,以免发生意外。

第三种:控制面板可以打开,只是一个网站的数据库连接不上。

那么这个情况绝大多数都是因为你的这个网站的 mysql 数据库里面有一张数据表出了问题。

这个时候你需要登录你的控制面板,进入到 phpmyadmin 里面,找到你的数据库,查看你那个数据库里面是不是有一张表处于“使用中”状态。

选中这样表进行修复即可,你的网站就会恢复正常。

我把上述提供的方法都排除了之后发现,网站还是处于 Error establishing a database connection 状态。仔细一想,原来是昨天我在 WordPress 里面修改了数据库密码,结果没在 ftp 里面修改,所以我连接了网站 FTP,查看了一下 wp-config 这个文件,发现数据库的密码是不对的,重新填入正确的密码,网站打开正常。

虚惊一场,不过也好,把方法都用了一遍,提升一下自己。

通过这个问题我发现很多问题发生先从自身找原因,看看是不是最近自己操作了那些文件,改了那些东西,导致网站出现的类视情况,这样就更好更快的解决问题,最后在用度娘帮忙。以上就是今天 WordPress 网站出现 Error establishing a database connection 解决办法,希望对发家有帮助。

「点点赞赏,手留余香」

5

给作者打赏,鼓励TA抓紧创作!

微信微信 支付宝支付宝

还没有人赞赏,快来当第一个赞赏的人吧!

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。
码云笔记 » WordPress报error establishing a database connection错误如何解决

6 评论

  1. 你好,我的站已经连着两天出现两次这种情况了,重启服务器就恢复了,上面的方法都不行,请问还有其他原因吗?(我的是nginx服务器)

    1. 你看看数据库表出问题没,数据库端口有没有放行,看看这是不是导致网站连不上数据库

  2. :smile:不错的解决方法 :razz:

  3. 楼主逗了,和自己开了一个玩笑,哈哈

  4. 正是我所需要的,哈哈,我也遇到过 :idea:

    1. 我也是大意啊,忘了修改ftp上的数据库密码 :mrgreen:

回复 码云 取消回复