### [WordPress建立数据库连接时出错终极解决方案](https://pmself.com/article/1298) **Published:** 2022-04-04T03:40:39 **Author:** crawlpw **Excerpt:** “ 建立数据库连接时出错 ”可能是WordPress用户可能遇到的最常见和最可怕的错误之一。这绝对与死亡白屏(… “ **建立数据库连接时出错** ”可能是WordPress用户可能遇到的最常见和最可怕的错误之一。这绝对与死亡白屏(WSOD)息息相关。此错误意味着您的网站不再通信或可以访问WordPress数据库,整个网站瘫痪。 对于这样的错误,站长切勿掉以轻心的事情,应该立即尝试解决此问题,直接影响流量,SEO等等。但不用担心,今天我们将讨论导致此错误的一些常见情况,以及对应的解决方案。 ![](https://pmself.com/wp-content/uploads/2022/04/000000.png) ### 建立数据库连接有什么错误? WordPress网站上的所有信息,例如发布数据,页面数据,元信息,插件设置,登录信息等,都存储在MySQL数据库中。唯一没有存储的数据是媒体内容,例如图像,以及主题/插件/核心文件,例如index.php,wp-login.php等。当有人访问您的网站时,PHP会在页面上执行代码并从数据库中查询信息,然后将其显示到访客浏览器中。 如果由于某种原因这无法正常工作,则将出现建立数据库连接时出错,如下所示。整个页面空白,因为**连接无法正常工作**,无法检索任何数据以呈现页面。这不仅破坏了网站的前端,而且导致无法访问WordPress仪表板。 但是,访客可能不会立即在前端看到此错误。那是因为站点缓存还可供访问,直到缓存过期为止。 ![建立数据库连接时出错](https://static.wbolt.com/wp-content/uploads/2020/06/error-establishing-a-database-connection-in-chrome.png "建立数据库连接时出错") 建立数据库连接时出错 ### 导致此错误的常见情况 以下是一些常见原因,后面我们会根据这些常见原因,给出不同的解决方案。 - 最常见的问题是**数据库登录凭据不正确**。WordPress网站需要使用数据库相关登录信息来连接到其对应的MySQL数据库。 - **数据库已损坏**。由于主题,插件可安装卸载如此之多,长年累月的不断删除和安装,有时会导致数据库损坏。这可能是由于表丢失或个别损坏,或者是某些信息被意外删除了。 - WordPress安装中可能存在**损坏的文件**。 - **数据库服务器问题**。Web主机端可能有很多问题,例如数据库因流量高峰而过载或由于并发连接过多而无法响应。实际上,对于共享主机,这很常见,因为许多网站共享一台主机的资源。 ### 如何修复“建立数据库连接时出错” 在开始对错误进行故障排查之前,**建议您首先进行数据库备份**,因为以下许多建议涉及操作数据库中的信息。无论你的技术水平如何,在尝试修改WordPress网站数据库之前,都应始终进行备份。 您可以使用WordPress备份插件(例如VaultPress或WP Time Capsule)来备份文件和数据库。 如果是宝塔面板用户,那就网站文件及数据库备份就很简单了,进入宝塔控制面板,在左边菜单找到“计划任务”,进入界面找到备份数据库和备份网站,手动执行即可。 ![备份WordPress网站](https://static.wbolt.com/wp-content/uploads/2020/06/BT-manual-backup-1024x727.png "备份WordPress网站") 备份WordPress网站 当然你还可以通过SFTP等工具,进入服务器执行手动备份网站文件,及通过phpMyAdmin手动备份MySQL数据库。备份成功后,就该开始对“建立数据库连接时出错”问题进行故障排除了。 参考阅读:《[使用BackWPup插件备份WordPress教程](https://www.wbolt.com/how-to-use-backwpup-plugin-to-backup-wordpress.html)》、《[如何安全备份WordPress博客网站数据?](https://www.wbolt.com/how-to-backup-your-wordpress-site.html)》 #### 1.检查数据库登录凭据 首先要做的是检查以确保WordPress配置文件的数据库登录凭据正确。这是迄今为止“建立数据库连接时出错”报错的**最常见原因**,特别是在迁移网站到新的托管服务提供商之后。WordPress网站的连接详细信息存储在wp-config.php文件中,该文件通常位于WordPress网站的根目录下。 它包含四个重要信息,这些信息都必须正确才能成功进行连接数据库。 **数据库名称**// \*\* MySQL settings \*\* // /\*\* The name of the database for WordPress \*/ define(‘DB\_NAME’, ‘xxxxxx’); **数据库用户名**/\*\* MySQL database username \*/ define(‘DB\_USER’, ‘xxxxxx’); **数据库密码**/\*\* MySQL database password \*/ define(‘DB\_PASSWORD’, ‘xxxxxxxxx’); **主机名(服务器)**/\*\* MySQL hostname \*/ define(‘DB\_HOST’, ‘localhost’); 要访问wp-config.php文件,您可以通过SFTP连接到站点并浏览到站点的根目录。或者,如果您使用的是宝塔,则可以进入宝塔控制面板单击“文件”,浏览到站点的根目录,然后右键单击以编辑文件。 ![宝塔文件管理](https://static.wbolt.com/wp-content/uploads/2020/06/BT-wp-config-1024x669.png "宝塔文件管理") 宝塔文件管理 以下是打开文件后的示例。 ![wp-config.php文件数据库访问凭证](https://static.wbolt.com/wp-content/uploads/2020/06/wp-config-file-credentials.png "wp-config.php文件数据库访问凭证") wp-config.php文件数据库访问凭证 现在,您需要对照当前值及服务器数据库真实值,以确保它们正确无误。对于宝塔用户,请按照以下说明进行操作。 **检查宝塔面板中的数据库凭据** 您需要登录宝塔面板,进入数据库即可找到网站对应的数据库,找到数据库名、用户名及密码等信息 。 ![宝塔面板查看数据库账号密码](https://static.wbolt.com/wp-content/uploads/2020/06/BT-wp-mysql-1024x372.png "宝塔面板查看数据库账号密码") 宝塔面板查看数据库账号密码 然后核对wp-config.php文件的对应信息,确保两边的信息一致即可,非常方便。(或者这也就是国内众多站长选择使用宝塔面板的原因) **检查cPanel面板中的数据库凭据** 如果你是使用cPanel管理主机,整个步骤稍微有点复杂。 首先要检查的是数据库名称。为此,您需要进入cPanel控制面板登录phpMyAdmin 。 ![cPanel控制面板的phpMyAdmin](https://static.wbolt.com/wp-content/uploads/2020/06/cpanel-phpmyadmin.png "cPanel控制面板的phpMyAdmin") cPanel控制面板的phpMyAdmin 在左侧菜单找到你的网站对应的数据库名称。忽略“information\_schema”数据库,因为这是主机使用的数据库。然后,将该名称与wp-config.php文件中的DB\_NAME值进行比较。如果它们匹配,那么这不是问题。如果它们不匹配,那么您需要更新wp-config.php文件。 ![cPanel 数据库名称](https://static.wbolt.com/wp-content/uploads/2020/06/cpanel-database-name.png "cPanel 数据库名称") cPanel 数据库名称 您还可以通过确保数据库是否包含你网站的URL来验证这是正确的数据库。只需单击数据库,然后单击wp\_options表(出于安全目的,此名称可能稍有不同,例如wpxx\_options)。在表格的顶部,您将看到网站URL和名称的值。如果这些与您当前站点匹配,说明这个是你的网站的数据库。 ![在phpMyAdmin检查网站URL](https://static.wbolt.com/wp-content/uploads/2020/06/check-site-url-in-phpmyadmin.png "在phpMyAdmin检查网站URL") 在phpMyAdmin检查网站URL 如果数据库名称正确,但是在建立数据库连接时仍然出现错误,那你还需要检查用户名和密码。为此,你需要在WordPress网站的根目录中创建一个新的PHP文件(随意命名,例如checkdb.php),并输入以下代码,需使用wp-config.php文件中的值替换为db\_user和db\_password的值。$test = mysqli\_connect(‘localhost’, ‘db\_user’, ‘db\_password’);**if** (!**$test**) {**die**(‘MySQL Error: ‘ . mysqli\_error());}**echo** ‘Database connection is working properly!’;mysqli\_close(**$testConnection**); 浏览器访问**https**:**//yourdomain.com/checkdb.php**。如果收到“MySQL Error: Access denied(MySQL错误:访问被拒绝)”,则说明您的用户名或密码错误,您将需要继续执行下一步以重置凭据。 ![MySQL错误:访问被拒绝](https://static.wbolt.com/wp-content/uploads/2020/06/access-denied-mySQL.png "MySQL错误:访问被拒绝") MySQL错误:访问被拒绝 但如果是“Database connection is working properly.(数据库连接正常工作)”,则说明数据库用户名和密码正确。**完成测试后,请确保删除此文件。** ![数据库连接正常工作](https://static.wbolt.com/wp-content/uploads/2020/06/database-connection-working-properly-e1498608809299.png "数据库连接正常工作") 数据库连接正常工作 如果确定数据库用户名和密码错误,接下来您需要重置用户名和密码。在cPanel中,点击“MySQL数据库”。 ![cPanel 控制面板之MySQL数据库](https://static.wbolt.com/wp-content/uploads/2020/06/cpanel-mysql-databases.png "cPanel 控制面板之MySQL数据库") cPanel 控制面板之MySQL数据库 向下滚动并创建一个新的MySQL用户。尝试选择唯一的用户名和密码(可以使用提供的密码生成器工具生成高强度密码),以免轻易被猜中。然后点击“Create User”。或者,您也可以在此界面上更改当前数据库用户的密码。 ![创建MySQL用户](https://static.wbolt.com/wp-content/uploads/2020/06/create-new-mysql-user.png "创建MySQL用户") 创建MySQL用户 然后向下滚动并将新用户添加到数据库中。下一个界面将询问您要分配的特权,选择“All Privileges(所有权限)”。 ![使用cPanel新增数据库用户](https://static.wbolt.com/wp-content/uploads/2020/06/cpanel-add-user-to-database.png "使用cPanel新增数据库用户") 使用cPanel新增数据库用户 然后使用这些新凭据并更新至wp-config.php文件(更新DB\_USER和DB\_PASSWORD值)。到此,你也可以使用前面提到的测试文件验证数据库凭证信息是否正确。但如果这未能解决问题,可能是主机名(DB\_HOST)错误。某些主机使用不同的值,你可以参阅一些[常见数据库主机值列表](https://www.wbolt.com/go?_=450d8ea176aHR0cHM6Ly93b3JkcHJlc3Mub3JnL3N1cHBvcnQvYXJ0aWNsZS9lZGl0aW5nLXdwLWNvbmZpZy1waHAv),或者查看主机相关文档及联系主机提供商提供。有些人可能还会使用127.0.0.1而不是localhost。 如果您已完成上述所有操作,但仍是“建立数据库连接时出错”,继续往下看。 #### 2\. 修复损坏的数据库 在某些情况下,可能是数据库已损坏。有时(尽管不是很经常)会发生这种情况,因为随着时间的推移,新插件和主题会不断添加/删除数百张数据表。如果您尝试登录WordPress网站的仪表板并收到以下错误,则表明您的数据库已损坏:“一个或多个数据库表不可用。数据库可能需要修复。” 重要的是要注意,您可能只会在访问WordPress管理后台才看到此错误,而在前端仅看到建立数据库连接错误提示。 WordPress实际上提供可以启动的数据库修复模式。只需将以下内容添加到wp-config.php文件的底部。define(‘WP\_ALLOW\_REPAIR’, **true**); ![WordPress修复模式](https://static.wbolt.com/wp-content/uploads/2020/06/wordpress-repair-mode.png "WordPress修复模式") WordPress修复模式 然后浏览器访问WordPress网站地址:**https** : **//yourdomain.com/wp-admin/maint/repair.php**。在页面你可以选择“修复数据库”或“修复并优化数据库”。由于您目前可能正在对站点进行故障排除,因此建议使用“修复数据库”选项,更高效。 ![WordPress修复数据库](https://static.wbolt.com/wp-content/uploads/2020/06/wordpress-database-repair.png "WordPress修复数据库") WordPress修复数据库 在运行完上述数据库的修复之后,请确保删除添加到wp-config.php文件中的代码行,否则任何人都可以运行修复。如果您使用cPanel,则还可以从MySQL数据库界面中运行修复。 ![cPanel修复数据](https://static.wbolt.com/wp-content/uploads/2020/06/cpanel-repair-database.png "cPanel修复数据") cPanel修复数据 或者,您也可登入phpMyAdmin进行修复。只需登录phpMyAdmin,选择需要修复的网站对应的数据库,然后选择所有表。然后从下拉菜单中单击“修复表”。这实际上只是在运行[REPAIR TABLE](https://www.wbolt.com/go?_=c2be9d1b82aHR0cHM6Ly9kZXYubXlzcWwuY29tL2RvYy9yZWZtYW4vNS43L2VuL3JlcGFpci10YWJsZS5odG1s)命令。 ![通过phpMyAdmin修复表](https://static.wbolt.com/wp-content/uploads/2020/06/wordpress-database-repair-mysql-1024x891.png "通过phpMyAdmin修复表") 通过phpMyAdmin修复表 最后,你想更“装逼”些,还可以选择使用WP-CLI通过以下命令运行修复:wp db repair #### 3\. 修复损坏文件 “建立数据库连接时出错”另外一个可能原因是文件已损坏。无论这是由于通过FTP传输文件的问题,黑客获得了访问您的站点的权限还是主机的问题,您都可以快速解决此问题。特别提醒,尝试此操作之前先备份您的网站。 基本上,您只需要替换WordPress的核心版本,无需理会插件,主题或媒体。你可以通过访问WordPress.org下载[最新版本的WordPress](https://www.wbolt.com/go?_=552b336ec8aHR0cHM6Ly9jbi53b3JkcHJlc3Mub3JnL2Rvd25sb2FkLw%3D%3D)。 ![下载WordPress](https://static.wbolt.com/wp-content/uploads/2020/06/wordpress-site-1024x670.png "下载WordPress") 下载WordPress 在您的计算机上解压缩该文件,然后删除wp-content文件夹以及wp-config-sample.php文件。 ![删除wp-content 目录及WP初始配置文件](https://static.wbolt.com/wp-content/uploads/2020/06/delete-wp-content-folder.jpg "删除wp-content 目录及WP初始配置文件") 删除wp-content 目录及WP初始配置文件 然后,通过SFTP将其余文件上传到您的站点,覆盖现有文件。这将替换所有有问题的文件,并确保您拥有干净且未损坏的新文件。建议这样做后清除浏览器缓存。然后检查您的WordPress网站以查看错误是否仍然存在。 #### 4\. 数据库服务器问题 如果上述方法均不能帮助您解决问题,那么强烈建议**您与托管服务提供商联系,**因为这可能是数据库服务器的问题。例如,如果数据库并发连接太多,则可能会产生错误。因为很多主机在服务器上都限制了一次允许连接的数量。利用缓存插件可以帮助最大程度地减少您站点上的数据库交互。 这个问题在共享主机上经常发生,因为理论上其他人可能会影响您的站点。这是因为共享主机共同使用服务器上的所有资源。始终建议尽可能使用VPS主机来搭建WordPress网站,至少主机资源由自己分配利用而不会变得人满为患。独立主机通常对环境进行微调,即可处理专门针对WordPress网站的大量流量。 #### 5\. 恢复至最近备份 最后在情非得已之时,恢复最近备份数据。在某些情况下,如果无需担心发生错误之时与上一次备份之间产生的数据,这可能是解决问题的较快方法。许多服务器提供商都提供备份数据恢复支持。请记住,您可能需要同时还原数据库和文件。 如果您是宝塔用户,则可以通过宝塔控制面板的计划任务,创建备份数据库或者备份网站计划任务,支持按周期定时备份,非常方便。 ![宝塔控制面板备份计划](https://static.wbolt.com/wp-content/uploads/2020/06/bt-backup-1024x543.png "宝塔控制面板备份计划") 宝塔控制面板备份计划 如果是恢复数据库备份,您只需要进入宝塔控制面板,进入数据库菜单,找到你需要恢复的数据库,点击“有备份”,选择需要恢复的备份版本,点击“恢复”即可。 ![WordPress数据库恢复](https://static.wbolt.com/wp-content/uploads/2020/06/bt-backup-01-1024x638.png "WordPress数据库恢复") WordPress数据库恢复 如果是恢复网站备份,则可以通过访问宝塔控制面板-文件,进入/www/backup/site目录,找到网站备份压缩包,将压缩包解压到对应网站目录即可。 ![WordPress网站数据恢复](https://static.wbolt.com/wp-content/uploads/2020/06/bt-backup-02-1024x431.png "WordPress网站数据恢复") WordPress网站数据恢复 ### 小结 如您所见,有很多方法可以解决WordPress中“建立数据库连接时出错”问题。最常见的错误是wp-config.php文件中设置的数据库凭据不正确,为此检查以确保正确无误是应该作为第一步。无论是由于哪个因素导致“建立数据库连接时出错”,希望上述步骤可以帮助您恢复网站的正常运行。请记住,如果需要,应始终对网站进行备份以还原站点。 您的WordPress站点是否也曾遭遇“建立数据库连接时出错”?当时导致该错误的原因是什么?你又是如何解决?不妨在下方评论,与其他网友一起分享讨论。 **Tags:** WORDPRESS **Categories:** Wordpress, 技术 ---