码云笔记前端博客
Home > WP教程 > WordPress报error establishing a database connection错误如何解决

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

2018-11-08 分类:WP教程 作者:管理员 阅读(853)

本文共计2757个字,阅读时间预计7分钟,干货满满,记得点赞加收藏哦

今天小编打开码云笔记时,发现网站打不开,页面并显示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文件,添加下面内容:

1
2
3
4
5
6
7
8
<IfModule mpm_prefork_module>
StartServers 5
MinSpareServers 5
MaxSpareServers 10
ServerLimit 100
MaxRequestWorkers 100
MaxConnectionsPerChild 2000
</IfModule>

说明:

1
2
3
4
5
6
7
8
<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文件中添加以下代码:

1
define('WP_ALLOW_REPAIR', true);

保存以后,我们执行下面的url来访问:
http://域名/wp-admin/maint/repair.php
访问该URL的主要功能是用来修复损坏的数据库。修改完成后,我们需要从wp-config.php文件中删除上面添加的代码。
如果您更改了root密码或数据库用户密码,那么您还需要更改此文件wp-config.php。确保配置的数据库的用户名和密码都正确。

1
2
3
4
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) 打赏

觉得文章有用就打赏一下文章作者

支付宝
微信
5

觉得文章有用就打赏一下文章作者

支付宝
微信

上一篇:

下一篇:

你可能感兴趣

共有 6 条评论 - WordPress报error establishing a database connection错误如何解决

  1. Alien Windows NT Chrome 73.0.3683.86

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

    1. 码云 Windows 7 Chrome 69.0.3497.100

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

  2. 妇芳单身骗 妇芳单身骗 lhm***@126.com Windows 7 Chrome 68.0.3440.106

    :smile:不错的解决方法 😛

  3. 贞子 Linux Chrome 62.0.3202.84

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

  4. 码农 Linux Chrome 62.0.3202.84

    正是我所需要的,哈哈,我也遇到过 💡

    1. mybj Windows 7 Chrome 63.0.3239.132

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

博客简介

码云笔记 mybj123.com,一个专注Web前端开发技术的博客,主要记录和总结博主在前端开发工作中常用的实战技能及前端资源分享,分享各种科普知识和实用优秀的代码,以及分享些热门的互联网资讯和福利!码云笔记有你更精彩!
更多博客详情请看关于博客

精彩评论

站点统计

  • 文章总数: 476 篇
  • 分类数目: 13 个
  • 独立页面: 8 个
  • 评论总数: 228 条
  • 链接总数: 15 个
  • 标签总数: 1050 个
  • 建站时间: 525 天
  • 访问总量: 8648336 次
  • 最近更新: 2019年11月21日