企业网站,个人博客等WordPress网站以及其他语言网站开发定制需求加QQ详聊。

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

Wordpress建站 码云 109℃ 0评论

今天小编打开码云笔记时,发现网站打不开,页面并显示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解决办法,希望对发家有帮助。

转载请注明:码云笔记 » WordPress报error establishing a database connection错误如何解决

喜欢 (4)or分享 (0)
发表我的评论
取消评论
表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
(4)个小伙伴在吐槽
  1. :smile:不错的解决方法 😛
    妇芳单身骗 妇芳单身骗 lhm***@126.com2018-11-27 10:32 回复
  2. 楼主逗了,和自己开了一个玩笑,哈哈
    贞子2018-11-09 10:11 回复
  3. 正是我所需要的,哈哈,我也遇到过 💡
    码农2018-11-08 10:26 回复
    • 码云
      我也是大意啊,忘了修改ftp上的数据库密码 :mrgreen:
      mybj2018-11-08 10:33 回复