如果您已经上网了一段时间,那么您至少已经几次看到此错误。建立数据库连接错误是可能由多种原因引起的诅咒之一。作为WordPress的初学者,如果它本身发生而无需更改任何内容,这可能会特别令人沮丧。我们昨天在自己的网站上遇到了这个问题。检测和修复问题花费了超过20分钟的时间。在进行研究以寻找可能的原因时,我们意识到没有一篇涵盖所有内容的好文章。在本文中,我们将向您展示如何通过在一个位置汇总所有解决方案列表来解决在WordPress中建立数据库连接的错误。
注意:在进行任何数据库更改之前,请确保具有足够的备份。
为什么会出现此错误?
简而言之,您会收到此错误,因为WordPress无法建立数据库连接。现在,WordPress无法建立数据库连接的原因可能有所不同。可能是您的数据库登录凭据错误或已更改。可能是您的数据库服务器没有响应。可能是您的数据库已损坏。根据我们的经验,大多数情况下会由于某种服务器错误而发生此错误,但是也可能存在其他因素。让我们看一下如何解决此问题。
/ 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
请记住,设置了此定义后,用户无需登录即可访问此功能。这是因为其主要目的是修复损坏的数据库。数据库损坏时,用户通常无法登录。因此,一旦完成修复和优化数据库的操作,请确保将其从wp-config.php中删除。
如果此修复不能解决问题,或者您在运行修复时遇到问题,请继续阅读本文,因为您可能会找到其他解决方案。
检查WP-Config文件
WP-Config.php可能是整个WordPress安装中最重要的单个文件。在这里您可以指定WordPress连接数据库的详细信息。如果您更改了root密码或数据库用户密码,则也需要更改此文件。您应该始终检查的第一件事是wp-config.php文件中的所有内容是否相同。
1个
2
3
4
|
define( 'DB_NAME' , 'database-name' ); define( 'DB_USER' , 'database-username' ); define( 'DB_PASSWORD' , 'database-password' ); define( 'DB_HOST' , 'localhost' ); |
请记住,您的DB_Host值可能并不总是localhost。根据主机,它会有所不同。对于诸如HostGator,BlueHost,SiteGround之类的流行主机,它是localhost。您可以在此处找到其他主机值。
有些人建议他们通过用IP替换localhost来解决问题。在本地服务器环境中运行WordPress时经常会遇到此类问题。例如,在MAMP上,将DB_Host值更改为IP时似乎可以使用。
1个
|
define( 'DB_HOST' , '127.0.0.1:8889' ); |
在线网络托管服务的IP会有所不同。
如果此文件中的所有内容都正确(请确保检查拼写错误),那么可以公平地说服务器端出了点问题。
检查您的Web主机(MySQL服务器)
通常,当您的站点被大量流量拥挤时,您会注意到此错误,建立数据库连接。基本上,您的主机服务器无法处理负载(特别是在共享主机上时)。您的网站将变得非常缓慢,对于某些用户甚至会输出错误。因此,您最好的做法是与托管服务提供商通电话或进行实时聊天,并询问他们MySQL服务器是否响应。
对于那些想测试MySQL服务器是否正在运行的用户,您可以做一些事情。在同一服务器上测试其他站点,以查看它们是否有问题。如果它们也遇到相同的错误,则说明您的MySQL服务器肯定有问题。如果您在同一托管帐户上没有任何其他网站,只需转到cPanel并尝试访问phpMyAdmin并连接数据库。如果可以连接,那么我们需要验证您的数据库用户是否具有足够的权限。创建一个名为testconnection.php的新文件,并将以下代码粘贴到其中:
1个
2
3
4
5
6
7
8
|
<?php $link = mysqli_connect( 'localhost' , 'username' , 'password' ); if (! $link ) { die ( 'Could not connect: ' . mysqli_error()); } echo 'Connected successfully' ; mysqli_close( $link ); ?> |
确保替换用户名和密码。如果脚本成功连接,则表明您的用户具有足够的权限,并且存在其他错误。返回到wp-config文件,以确保所有内容正确(重新扫描输入错误)。
如果您无法通过转到phpMyAdmin连接到数据库,那么您就知道它与服务器有关。这不一定意味着您的MySQL服务器已关闭。这可能意味着您的用户没有足够的权限。
在我们的例子中,我们的MySQL服务器正在运行。除了WPBeginner之外,服务器上的所有其他站点都工作正常。当我们尝试转到phpMyAdmin时,最终收到错误消息:
#1045 –用户’foo’@’%’的访问被拒绝(使用密码:是)
我们与HostGator通话,他们的支持很快发现了问题。不知何故,我们的用户权限被重置。不知道那是怎么发生的,但是显然那是原因。他们返回并恢复了权限,我们得以重新启动该网站。
因此,如果在连接到phpMyAdmin或通过testconnection.php结果时出现访问被拒绝错误,则应立即与主机联系以使他们进行修复。
适用于他人的解决方案
重要的是要注意,这些可能对您不起作用。使用时需要您自担风险,如果有任何问题,请确保有足够的备份。
Deepak Mittal说,他的客户遇到了需要修复数据库的错误。即使修复了数据库,错误也没有消失。他尝试了各种方法,最后,问题是网站的网址。显然,该更改已导致错误持续存在。他通过转到phpMyAdmin来运行SQL查询:
1个
|
UPDATE wp_options SET option_value= 'YOUR_SITE_URL' WHERE option_name= 'siteurl' |
确保使用实际的网址示例替换YOUR_SITE_URL:https://www.wpbeginner.com。如果您更改了默认的WordPress数据库前缀,则wp_options将有所不同。
这似乎为他和其他对他的帖子发表评论的人都解决了这个问题。
Sachinum建议他能够使用testconnection.php连接数据库,因此他将wp-config.php用户更改为root用户。WordPress开始工作正常。然后,他将设置恢复为数据库用户,然后继续工作。他不知道出什么问题了,但得出的结论是这是一个错字。
Cutewonders建议他们删除wp_options表中active_plugins的内容,并编辑last_edited的内容。基本上,这似乎可以解决问题。请在这里得到他们的充分答复。
我们从众多资料中获悉,用户只是简单地上传了WordPress的新副本,并修复了该错误。