如何修复WordPress中数据库链接错误

2018/07/26

写这篇文章之前,笔者的几个演示网站遇到了这个问题。最开始笔者认为是数据库崩溃所造成了。后发现同一个数据库的其他大部分演示网站都可以正常访问,唯独几个不能访问。笔者才意识到问题的严重性。当然最后花了几分钟轻松解决了该问题。

如果您的是个wordpress初学者,可能会有点不知所措。不过在您阅读这篇文章时,恭喜您,可能您来对了地方。这里会列出了出现WordPress中数据库链接错误尽可能多的原因并告诉您如何修复。

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

为什么会出现这个错误?

简而言之,您收到此错误是因为WordPress无法建立数据库连接。现在,WordPress无法建立数据库连接的原因可能会有所不同。可能是您的数据库登录凭据错误或已更改。可能是您的数据库服务器没有响应。可能是您的数据库已损坏。根据我们的经验,大多数时候由于某种服务器错误而发生此错误,但也可能存在其他因素。让我们来看看如何解决这个问题。

问题是否也出现在/ wp-admin /中?

您应该做的第一件事是确保您在站点的前端和站点的后端(wp-admin)上收到相同的错误。如果两个页面上的错误消息相同“建立数据库连接时出错”,则继续执行下一步。如果您在wp-admin上遇到不同的错误,例如“一个或多个数据库表不可用”。可能需要修复数据库“,然后您需要修复数据库。

使用editplus软件打开下载下来的wp-config.php文件,在“好了,不要再编辑”前加入以下代码:

define(‘WP_ALLOW_REPAIR’, true);

然后保存,回转到网站根目录,覆盖原来的文件。

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

在WordPress中修复数据库

请记住,设置此定义后,用户无需登录即可访问此功能。这是因为它的主要目的是修复损坏的数据库,用户在数据库损坏时通常无法登录。因此,一旦完成修复和优化数据库,请确保从wp-config.php中删除它。

如果此修复无法解决问题,或者您在运行修复时遇到问题,请继续阅读本文,因为您可能会找到其他解决方案。

检查WP-Config文件

WP-Config.php可能是整个WordPress安装中最重要的单个文件。您可以在此处指定WordPress连接数据库的详细信息。如果您更改了root密码或数据库用户密码,则还需要更改此文件。你应该经常检查的第一件事是wp-config.php文件中的所有内容是否相同。

define(‘DB_NAME’, ‘database-name’);
define(‘DB_USER’, ‘database-username’);
define(‘DB_PASSWORD’, ‘database-password’);
define(‘DB_HOST’, ‘localhost’);

请记住,您的DB_Host值可能并不总是localhost。根据主机的不同,它会有所不同。对于一些主机,它是localhost。而阿里云的云主机就不同

有些人建议他们通过用IP替换localhost来解决他们的问题。在本地服务器环境中运行WordPress时,常见这种问题。例如,在MAMP上,更改为IP时的DB_Host值似乎可以正常工作。

define(‘DB_HOST’, ‘127.0.0.1:8889’);

IP将因在线网络托管服务而异。

如果此文件中的所有内容都正确(请确保检查拼写错误),那么可以说服务器端出现了问题。

检查您的Web主机(MySQL服务器)

当您的网站充斥着大量流量时,通常会发现此错误建立数据库连接。基本上,您的主机服务器无法处理负载(特别是当您在共享主机上时)。您的网站会变得非常慢,有些用户甚至会输出错误。因此,您应该做的最好的事情是通过电话或与您的托管服务提供商进行沟通,并询问他们您的MySQL服务器是否响应。

对于想要测试MySQL服务器是否自己运行的用户,您可以做一些事情。测试同一服务器上的其他站点,看看他们是否遇到问题。如果他们也得到相同的错误,那么你的MySQL服务器肯定存在问题。如果您在同一主机帐户上没有任何其他站点,只需转到您的cPanel并尝试访问phpMyAdmin并连接数据库。如果可以连接,那么我们需要验证您的数据库用户是否具有足够的权限。创建一个名为testconnection.php的新文件,并在其中粘贴以下代码:

<?php
$link = mysql_connect(‘localhost’, ‘root’, ‘password’);
if (!$link) {
die(‘Could not connect: ‘ . mysql_error());
}
echo ‘Connected successfully’;
mysql_close($link);
?>

确保替换用户名和密码。如果连接成功,则表示您的用户具有足够的权限,并且还有其他错误。返回到您的wp-config文件以确保其中的所有内容都正确(重新扫描拼写错误)。

如果您无法通过访问phpMyAdmin连接到数据库,那么您知道它与您的服务器有关。它并不一定意味着您的MySQL服务器已关闭。这可能意味着您的用户没有足够的权限。

在一个例子中,我们的MySQL服务器正在运行。除了出问题的网站之外,服务器上的所有其他站点都工作正常。当我们尝试使用phpMyAdmin时,我们最终得到错误:

#1045 – 用户’foo’@’%’的访问被拒绝(使用密码:YES)

我们与主机商沟通后,他们很快发现了问题。不知何故,我们的用户权限被重置。不确定是怎么发生的,但显然这就是原因。他们重新进入并恢复了权限,我们能够让网站恢复正常运行。

因此,如果您在连接到phpMyAdmin或通过testconnection.php结果时遇到拒绝访问错误,那么您应该立即联系您的主机以让他们修复它。

为他人服务的解决方案

重要的是要注意,这些可能对您不起作用。使用风险由您自己承担,如果出现任何问题,请确保您有足够的备份。

另一个例子,他的客户端正在收到数据库需要修复的错误。即使在修复数据库之后,错误也没有消失。他尝试了各种各样的东西,最后,问题是网站的网址。显然已经改变了,导致错误持续存在。他通过访问phpMyAdmin来运行SQL查询:

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

请务必将YOUR_SITE_URL替换为实际的网址如:https://www.dianjin123.com。如果您更改了默认的WordPress数据库前缀,则wp_options将不同。

这似乎解决了他和其他几个对他的帖子发表评论的问题。

还有个实例时能够使用testconnection.php连接数据库,因此他将wp-config.php用户更改为root用户。WordPress开始工作得非常好。然后他将设置还原回数据库用户,并继续工作。他无法弄清楚出了什么问题,但结论是这是一个错字。

该用户建议删除wp_options表中的active_plugins内容并编辑recent_edited的内容。基本上这似乎解决了这个问题。

我们在众多消息来源上看到用户只是上传了WordPress的新副本并修复了错误。

这是一个非常令人沮丧的错误。你试过什么似乎适合你?我们很乐意扩展这一资源,以便其他人不必浪费太多时间寻找解决方案。

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注