如果你已经在网上冲浪了一段时间,你至少看到了这个错误几次。 建立数据库连接时出现错误是由于许多原因可能造成的诅咒之一。 作为一个WordPress的初学者,这可能是非常令人沮丧,特别是当它发生在自己没有你改变任何东西。 我们昨天在自己的网站上遇到了这个问题。 花了20多分钟才发现并解决了这个问题。 在研究中找到可能的原因时,我们意识到没有什么好的文章涵盖了一切。 在本文中,我们将向您展示如何通过在一个地方编译一个解决方案列表来解决在WordPress中建立数据库连接的错误。
注意:在进行任何数据库更改之前,请确保您有足够的备份。
你为什么得到这个错误?
简而言之,你会得到这个错误,因为WordPress无法建立数据库连接。 现在,WordPress无法建立数据库连接的原因可能会有所不同。 这可能是因为您的数据库登录凭据错误或已被更改。 这可能是因为你的数据库服务器没有响应。 这可能是您的数据库已损坏。 根据我们的经验,大多数时候这个错误是由于某种服务器错误而发生的,但是也可能有其他的一些因素。 让我们看看如何解决这个问题。
/ wp-admin /还有问题吗?
你应该做的第一件事是确保你在站点的前端和站点的后端(wp-admin)都得到相同的错误。 如果错误消息在“建立数据库连接出错”两页上都是相同的,则继续下一步。 如果你在wp-admin上得到不同的错误,例如“一个或多个数据库表不可用”。 数据库可能需要修复“,那么你需要修复你的数据库。
你可以通过在你的wp-config.php文件中添加下面这行来做到这一点。 刚刚添加它 “就这样,停止编辑! 开心博客“ 行wp-config.php。
define('WP_ALLOW_REPAIR',true);
一旦你完成了,你可以通过访问这个页面看到设置: http://www.yoursite.com/wp-admin/maint/repair.php
请记住,设置此定义后,用户无需登录即可访问此功能。 这是因为它的主要目的是修复损坏的数据库,当数据库损坏时,用户通常不能登录。 所以一旦你完成了修复和优化你的数据库,一定要从你的wp-config.php中删除这个。
如果这种修复不能解决问题,或者您在修复运行时遇到问题,请继续阅读本文,因为您可能会发现另一种解决方案。
检查WP-Config文件
WP-Config.php可能是整个WordPress安装中最重要的文件。 这是您指定WordPress连接数据库的详细信息的地方。 如果您更改了根密码或数据库用户密码,则还需要更改此文件。 首先你应该经常检查是否你的wp-config.php文件中的所有内容都是一样的。
define('DB_NAME','database-name'); define('DB_USER','database-username'); define('DB_PASSWORD','数据库密码'); define('DB_HOST','localhost');
记住你的DB_HOST值可能并不总是本地主机。 根据主机,它会有所不同。 对于HostGator,BlueHost,Site5等流行的主机,它是本地主机。 你可以在这里找到其他的主机值。
有些人建议他们用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 并在其中粘贴以下代码:
确保更换用户名和密码。 如果连接成功,那么这意味着你的用户有足够的权限,还有其他的东西是错误的。 回到您的wp-config文件,确保所有内容都正确(重新扫描拼写错误)。
如果你不能通过phpMyAdmin连接到数据库,那么你知道这是你的服务器的东西。 这并不一定意味着你的MySQL服务器关闭了。 这可能意味着您的用户没有足够的权限。
现场
#1045 – 用户’foo’@’%’拒绝访问(使用密码:是)
我们与HostGator通了电话,他们的支持很快发现了这个问题。 不知怎的,我们的用户的权限被重置。 不知道这是怎么发生的,但显然这是原因。 他们回来了,并恢复权限,我们能够恢复网站的生活。
因此,如果您在连接到您的phpMyAdmin或通过testconnection.php结果获得访问被拒绝的错误,那么您应该马上联系您的主机让他们修复它。
为他人工作的解决方案
重要的是要注意,这些可能不适合你。 如果出现任何问题,请自行承担风险,并确保备份充足。
Deepak Mittal说他的客户正在收到数据库需要修复的错误。 即使在修复数据库之后,错误也没有消失。 他尝试了各种各样的东西,最后问题是网站的网址。 显然这被改变了,导致错误持续。 他通过转到phpMyAdmin运行SQL查询:
UPDATE wp_options SET option_value ='YOUR_SITE_URL'WHERE option_name ='siteurl'
请确保使用实际的网址示例替换YOUR_SITE_URL:http://www.site.com。 如果您更改了默认的WordPress数据库前缀,则wp_options将会有所不同。
这似乎解决了他的问题和其他几个评论他的帖子。
Sachinum建议他能够将数据库连接到testconnection.php,因此他将wp-config.php用户更改为root用户。 WordPress开始工作得很好。 然后他将设置恢复到数据库用户,并继续工作。 他无法弄清楚什么是错的,但得出这是一个错字。
Cutewonders建议他们删除wp_options表中的active_plugins的内容,并编辑recent_edited的内容。 基本上这似乎解决了这个问题。 请在这里完整回应。
我们阅读了很多来源,用户只是上传一个新的WordPress的副本,并修复了错误。
这是一个非常令人沮丧的错误。 你有什么尝试似乎为你工作? 我们很乐意扩大这个资源,所以其他人不必浪费太多时间找到解决方案。