如何解决WordPress建立数据库连接错误

2017年9月1日07:48:35 5 439 views

如果你是个老站长司机,肯定会遇到几次报错,建立数据库连接出错是由许多原因造成的。作为一名WordPress新手,出现这种问题是很头疼的,当它发生在自己网站上时只能束手无措。本文将介绍如何排查和修复这个错误。

注意:在进行任何数据库更改之前,请确保数据库已备份。

 

为什么会报错误?

简单的说,此错误是因为WordPress无法建立数据库连接而导致的。WordPress无法建立数据库连接的原因有以下几种:1、数据库登录凭据错误或已更改。2、数据库服务器无响应。3、数据库已损坏。根据经验,大多数错误是由于服务器错误而产生的,不排除也有其他因素。

 

/ wp-admin /是否也报错?

首先应该确认的是,站点的前端和站点的后端(wp-admin)是否都报错。如果在这两个页面上都报“建立数据库连接时出错”,请继续执行下一步。如果在wp-admin上收到不同的错误,例如“一个或多个数据库表不可用”,那么,数据库可能需要修复。

通过在wp-config.php文件中添加以下命令来执行此操作。打开wp-config.php文件,添加在“/* 好了!请不要再继续编辑。请保存本文件。使用愉快! */”之前的任何位置就可以了。

 

  1. define('WP_ALLOW_REPAIR', true);

 

完成后,您可以通过访问此页面查看设置:http : //www.yoursite.com/wp-admin/maint/repair.php

 

如何解决WordPress建立数据库连接错误

 

切记,当设置此定义时,用户不需要登录就能访问此功能。因为修复损坏的数据库时,数据库是损坏的,所以不能登录。一旦完成修复和优化,一定要从你的wp-config.php删除这行代码。

如果修复这个地方没有解决问题,或者在运行修复时遇到问题,请继续参照下面的方法。

 

检查WP-Config文件

WP-Config.php是整个WordPress安装中最重要的文件之一,它是配置连接数据库信息的位置。如果更改了root密码或数据库用户密码,那么还需要更改这个文件。需要确保wp-config.php文件中的所有内容都一致。

  1. define('DB_NAME', 'database-name');
  2. define('DB_USER', 'database-username');
  3. define('DB_PASSWORD', 'database-password');
  4. define('DB_HOST', 'localhost');

 

如果你不是在本地测试网站,DB_Host值就不是localhost,它是根据你的主机决定的。通常情况下我们可以用IP来替换本地主机,从而解决这个问题。例如:在MAMP上,更改DB_Host值为IP就可以了。

 

  1. define('DB_HOST', '127.0.0.1:8889');

 

如果这个文件中的所有内容都是正确的(确保代码拼写没有错误),那么可以肯定的是服务器端有问题。

 

检查Web主机(MySQL服务器)

通常,当站点吞没了大量流量时,会发生建立数据库连接错误。这是由于主机服务器无法处理加载(特别是共享托管时)造成的。网站会变得非常慢,造成用户无法访问。这时,你就要和主机运营商咨询MySQL服务器是否响应。

如果你想测试MySQL服务器是否正在运行,可以测试同一服务器上的其他站点,看看是否有问题。如果其他站点也报错,那就可以肯定是MySQL服务器出了问题。如果同服务器没有其他网站,你可以登录服务器控制台,尝试访问phpMyAdmin并连接数据库。如果可以连接,那么需要验证数据库用户是否有足够的权限。创建一个名为testconnection.php的新文件,并粘贴以下代码:

 

  1. <?php
  2. $link = mysql_connect('localhost', 'root', 'password');
  3. if (!$link) {
  4. die('Could not connect: ' . mysql_error());
  5. }
  6. echo 'Connected successfully';
  7. mysql_close($link);
  8. ?>

 

确保是否更换了用户名和密码。如果连接成功,说明用户有足够的权限,还有其他的错误。返回到wp-config文件,以确保所有内容都正确。

如果无法通过转到phpMyAdmin连接到数据库,那就是和服务器有关。这并不是说MySQL服务器已关闭,可能是用户没有足够的权限。因此,假设在连接到phpMyAdmin或通过testconnection.php的结果中反馈结果是“访问被拒绝”,那么就应该立即与主机运营商取得联系,让他们恢复正常。

 

其他解决方案

如果以上方法还不能解决报错的问题,那么你可以参考一下遇到过这类问题的站长给出的解决方法,在测试的时候,请先备份好数据库。

有些站长在遇到错误后,及时修复了错误,但是,后面又出现错误。最后发现是网站的url出了问题,你可以通过去phpMyAdmin运行SQL查询:

 

UPDATE wp_options SET option_value='YOUR_SITE_URL' WHERE option_name='siteurl'

 

用实际的url链接替换YOUR_SITE_URL(比如:https://www.liwei8090.com),如果你使用的WordPress数据库前缀不是默认的,那么wp_options就是对应更改的内容。

 

Liwei

发表评论

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

目前评论:5   其中:访客  3   博主  2

    • 夏日草博客 夏日草博客 1

      在config文件里设置好,数据库没有问题基本就OK了。

      • 姜辰 姜辰 5

        EM曾经也出现过,我后来增加了一个在凌晨四点自动重启mysql的任务,然后就好了。

          • Liwei Liwei Admin

            @姜辰 我这个也是在刚配置环境的时候出现的

          • 懿古今 懿古今 5

            这个错误偶尔在某些站点看到过,没想到修复起来也蛮复杂的

              • Liwei Liwei Admin

                @懿古今 就是要一步一步排查,我的在第一步就解决了。