如何修复WordPress中建立数据库连接的错误
如果你已经在网上冲浪一段时间,你至少会看到这个错误几次。建立数据库连接时出错是可能由多种原因引起的诅咒之一。作为一个WordPress初学者,这可能是非常令人沮丧的,特别是当它发生在你自己没有你改变任何东西。我们昨天在自己的网站上遇到了这个问题。检测并修复问题花了20多分钟。在进行研究以寻找可能的原因时,我们意识到没有包含所有内容的好文章。在本文中,我们将向您展示如何通过在一个位置编译解决方案列表来修复在WordPress中建立数据库连接的错误。
注意:在进行任何数据库更改之前,请确保您已经足够备份。
为什么会出现此错误?
简而言之,您收到此错误是因为WordPress无法建立数据库连接。现在,WordPress无法建立数据库连接的原因可能会有所不同。可能是您的数据库登录凭据错误或已更改。可能是您的数据库服务器没有响应。可能是您的数据库已损坏。根据我们的经验,大多数时候由于某种服务器错误而发生此错误,但也可能存在其他因素。让我们来看看如何解决这个问题。
视频教程
订阅WPBeginner
如果您不喜欢该视频或需要更多说明,那么继续阅读。
/ wp-admin /也会出现问题吗?
您应该做的第一件事是确保您在站点的前端和站点的后端(wp-admin)上收到相同的错误。如果两个页面上的错误消息相同“建立数据库连接时出错”,则继续执行下一步。如果您在wp-admin上遇到不同的错误,例如“一个或多个数据库表不可用”。可能需要修复数据库“,然后您需要修复数据库。
您可以通过在wp-config.php文件中添加以下行来完成此操作。在之前添加它就是这样,停止编辑!快乐博客’ line 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连接数据库的详细信息。如果您更改了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。根据主机的不同,它会有所不同。对于像HostGator,BlueHost,SiteGround这样的流行主机,它是localhost。您可以在此处找到其他主机值。
有些人建议他们通过将IP替换为localhost来解决问题。在本地服务器环境中运行WordPress时,常见这种问题。例如,在MAMP上,更改为IP时的DB_Host值似乎可以正常工作。
define("DB_HOST", "127.0.0.1:8889");
IP对于在线Web托管服务会有所不同。
如果此文件中的所有内容都正确(请确保您检查拼写错误),那么可以说服务器端有问题。
检查您的Web主机(MySQL服务器)
当您的网站充斥着大量流量时,通常会发现此错误建立数据库连接。基本上,您的主机服务器无法处理负载(特别是当您在共享主机上时)。您的网站会变得非常慢,有些用户甚至会输出错误。因此,您应该做的最好的事情是通过电话或与您的托管服务提供商进行实时聊天,并询问他们您的MySQL服务器是否响应。
对于想要测试MySQL服务器是否自行运行的用户,您可以做一些事情。测试同一服务器上的其他站点,看看他们是否遇到问题。如果他们也得到相同的错误,那么你的MySQL服务器肯定存在问题。如果您在同一主机帐户上没有任何其他站点,只需转到您的cPanel并尝试访问phpMyAdmin并连接数据库。如果可以连接,那么我们需要验证您的数据库用户是否具有足够的权限。创建一个名为 testconnection.php 并将以下代码粘贴到其中:
<?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’@’%’访问被拒绝(使用密码:YES)
我们与HostGator通了电话,他们的支持很快发现了问题。不知何故,我们的用户权限被重置。不确定是怎么发生的,但显然这就是原因。他们返回并恢复权限,我们能够恢复网站。
因此,如果您在连接到phpMyAdmin或通过testconnection.php结果时遇到访问被拒绝错误,那么您应该联系你的主人马上让他们去解决它。
为他人工作的解决方案
重要的是要注意,这些可能对你不起作用。如果出现任何问题,请自行承担风险并确保备份充足。
Deepak Mittal说他的客户端收到了数据库需要修复的错误。即使在修复数据库之后,错误也没有消失。他尝试了各种各样的东西,最后,问题是网站的网址。显然已经改变了,导致错误持续存在。他通过转到phpMyAdmin来运行SQL查询:
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的内容并编辑recent_edited的内容。基本上这似乎解决了这个问题。请在这里完整回复。
我们在众多消息来源上看到用户只是上传了WordPress的新副本并修复了错误。
这是一个非常令人沮丧的错误。你试过什么似乎对你有用?我们很乐意扩展这个资源,因此其他人不必浪费太多时间来寻找解决方案。
如果你已经在网上冲浪一段时间,你至少会看到这个错误几次。建立数据库连接时出错是可能由多种原因引起的诅咒之一。作为一个WordPress初学者,这可能是非常令人沮丧的,特别是当它发生在你自己没有你改变任何东西。我们昨天在自己的网站上遇到了这个问题。检测并修复问题花了20多分钟。在进行研究以寻找可能的原因时,我们意识到没有包含所有内容的好文章。在本文中,我们将向您展示如何通过在一个位置编译解决方案列表来修复在WordPress中建立数据库连接的错误。
注意:在进行任何数据库更改之前,请确保您已经足够备份。
为什么会出现此错误?
简而言之,您收到此错误是因为WordPress无法建立数据库连接。现在,WordPress无法建立数据库连接的原因可能会有所不同。可能是您的数据库登录凭据错误或已更改。可能是您的数据库服务器没有响应。可能是您的数据库已损坏。根据我们的经验,大多数时候由于某种服务器错误而发生此错误,但也可能存在其他因素。让我们来看看如何解决这个问题。
视频教程
订阅WPBeginner
如果您不喜欢该视频或需要更多说明,那么继续阅读。
/ wp-admin /也会出现问题吗?
您应该做的第一件事是确保您在站点的前端和站点的后端(wp-admin)上收到相同的错误。如果两个页面上的错误消息相同“建立数据库连接时出错”,则继续执行下一步。如果您在wp-admin上遇到不同的错误,例如“一个或多个数据库表不可用”。可能需要修复数据库“,然后您需要修复数据库。
您可以通过在wp-config.php文件中添加以下行来完成此操作。在之前添加它就是这样,停止编辑!快乐博客’ line 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连接数据库的详细信息。如果您更改了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。根据主机的不同,它会有所不同。对于像HostGator,BlueHost,SiteGround这样的流行主机,它是localhost。您可以在此处找到其他主机值。
有些人建议他们通过将IP替换为localhost来解决问题。在本地服务器环境中运行WordPress时,常见这种问题。例如,在MAMP上,更改为IP时的DB_Host值似乎可以正常工作。
define("DB_HOST", "127.0.0.1:8889");
IP对于在线Web托管服务会有所不同。
如果此文件中的所有内容都正确(请确保您检查拼写错误),那么可以说服务器端有问题。
检查您的Web主机(MySQL服务器)
当您的网站充斥着大量流量时,通常会发现此错误建立数据库连接。基本上,您的主机服务器无法处理负载(特别是当您在共享主机上时)。您的网站会变得非常慢,有些用户甚至会输出错误。因此,您应该做的最好的事情是通过电话或与您的托管服务提供商进行实时聊天,并询问他们您的MySQL服务器是否响应。
对于想要测试MySQL服务器是否自行运行的用户,您可以做一些事情。测试同一服务器上的其他站点,看看他们是否遇到问题。如果他们也得到相同的错误,那么你的MySQL服务器肯定存在问题。如果您在同一主机帐户上没有任何其他站点,只需转到您的cPanel并尝试访问phpMyAdmin并连接数据库。如果可以连接,那么我们需要验证您的数据库用户是否具有足够的权限。创建一个名为 testconnection.php 并将以下代码粘贴到其中:
<?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’@’%’访问被拒绝(使用密码:YES)
我们与HostGator通了电话,他们的支持很快发现了问题。不知何故,我们的用户权限被重置。不确定是怎么发生的,但显然这就是原因。他们返回并恢复权限,我们能够恢复网站。
因此,如果您在连接到phpMyAdmin或通过testconnection.php结果时遇到访问被拒绝错误,那么您应该联系你的主人马上让他们去解决它。
为他人工作的解决方案
重要的是要注意,这些可能对你不起作用。如果出现任何问题,请自行承担风险并确保备份充足。
Deepak Mittal说他的客户端收到了数据库需要修复的错误。即使在修复数据库之后,错误也没有消失。他尝试了各种各样的东西,最后,问题是网站的网址。显然已经改变了,导致错误持续存在。他通过转到phpMyAdmin来运行SQL查询:
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的内容并编辑recent_edited的内容。基本上这似乎解决了这个问题。请在这里完整回复。
我们在众多消息来源上看到用户只是上传了WordPress的新副本并修复了错误。
这是一个非常令人沮丧的错误。你试过什么似乎对你有用?我们很乐意扩展这个资源,因此其他人不必浪费太多时间来寻找解决方案。