如何修復 WordPress 中的“建立數據庫連接時出錯”

已發表: 2022-02-07

您是否只是嘗試訪問您的 WordPress 網站,卻遇到一條可怕的消息:錯誤建立數據庫連接而不是您的 WordPress 網站?

錯誤建立數據庫連接WordPress 錯誤是一個比較常見的錯誤,在更改主機或遷移 WordPress 站點後經常彈出,儘管您也可能在其他情況下看到它。

這可能很可怕,因為您的網站似乎完全消失了,您的所有數據都消失了。

首先——別擔心。 儘管現在情況看起來很糟糕,但您網站的所有數據在數據庫中都應該是安全可靠的。 我們稍後再討論這個問題,但這裡的問題是您的 WordPress 網站無法訪問您的數據,而不是數據不存在。

其次,您可以採取一些故障排除步驟來快速解決問題並讓您的網站重新運行。 因此,您應該能夠以最小的努力解決問題。

在這篇文章中,我們將做兩件事:

首先,我們將解釋更多關於建立數據庫連接錯誤 WordPress 錯誤的含義以及您可能會看到它的原因。

其次,我們將向您展示如何永久修復建立數據庫連接消息的 WordPress 錯誤。 您需要採取的確切故障排除步驟通常取決於您遇到消息的時間,因此我們將針對兩種情況分享不同的故障排除步驟:

  1. 在新創建的站點上或遷移站點後立即看到此錯誤。
  2. 在您沒有更改任何內容的現有站點上看到此錯誤。

到最後,您應該再次擁有一個完全正常工作的 WordPress 網站!

“建立數據庫連接時出錯”是什麼意思?

建立數據庫連接的錯誤消息在您的 WordPress 網站上應如下所示:

建立數據庫連接時出錯 WordPress 錯誤消息

為了幫助您理解此錯誤消息的含義,我們首先需要將 WordPress 分解為兩個基本組件。

您的 WordPress 網站大致有兩個部分:

  1. 您的文件——這些是您網站的 PHP 和 HTML 文件、CSS 樣式表、JavaScript 腳本等。
  2. 您的數據——這是您的博客文章內容、您的網站設置、您的用戶、您的評論等等。

您站點的所有文件都位於您的服務器上,但您站點的所有數據都存在於數據庫中(因此得名)。

如果您的站點文件無法與數據庫“對話”,則您的站點無法訪問所有內容、設置等,而這些內容、設置等都是它需要將您的站點呈現給訪問者的。

因為不訪問數據庫就無法顯示您的網站,所以您的 WordPress 站點將顯示錯誤建立數據庫連接消息。

什麼會導致您的站點在連接到數據庫時出現問題? 好吧,我們將在下一節的故障排除步驟中詳細研究這一點,但一些最常見的問題如下:

  • 數據庫憑據不正確——就像您需要用戶名/密碼才能登錄 WordPress 儀表板一樣,您的站點也需要用戶名/密碼才能連接到數據庫。 如果這些憑據錯誤(或者數據庫名稱錯誤),則會觸發錯誤。 當您將站點遷移到新主機時,此問題可能會發生很多。
  • 無響應的數據庫服務器——您的數據庫所在的服務器可能會停機,這是您的主機問題而不是 WordPress 網站的問題。
  • 損壞的數據庫——不良插件、附加組件、主題和數據傳輸中斷可能會使您的數據庫缺少表或在最壞的情況下完全損壞。 值得慶幸的是,WordPress 包含自己的數據庫修復工具。
  • 損壞的 WordPress 文件- 核心 WordPress 文件的問題也可能在邊緣情況下導致此錯誤。 解決方法是重新上傳核心 WordPress 軟件的干淨副本。

在下一節中,我們將概述已知可行的最常見解決方案。

如何修復在 WordPress 中建立數據庫連接的錯誤

當您在 WordPress 中看到建立數據庫連接錯誤消息時,有兩種高級情況:

  1. 在將站點遷移到新主機/服務器或嘗試創建全新的 WordPress 安裝後。
  2. 在您最近未進行任何更改的現有網站上。

這些情況通常有不同的修復方法,因此我們將它們分成不同的部分。 您可以單擊上面的鏈接直接跳轉到您的場景的特定部分。

話雖如此,這可能是一個棘手的錯誤。 因此,如果一個部分中的提示不起作用,我們建議您也嘗試另一部分中的提示。 基本上,我們只是試圖將您引導至最有可能解決您的特定情況的故障排除步驟,以免您浪費時間。

1. 遷移站點或創建新站點後的錯誤消息

如果您在將 WordPress 站點遷移到新主機或創建全新的 WordPress 站點後看到錯誤建立數據庫連接消息,則問題幾乎總是不正確的數據庫憑據。

為了讓您的 WordPress 站點連接到數據庫,它需要知道有關數據庫的以下信息:

  • 數據庫名稱
  • 數據庫用戶用戶名
  • 數據庫用戶密碼
  • 數據庫位置

遷移站點時,有時新主機上的數據庫憑據可能與舊主機上的不同,這將觸發錯誤。

這是您可以解決的方法。

檢查您的數據庫登錄憑據

首先,您需要了解您的 WordPress 站點配置為使用哪些 WordPress 憑據。

為此,您需要訪問站點的wp-config.php文件,您可以通過 FTP 連接到服務器或使用 cPanel 文件管理器或主機的文件管理器工具等工具來完成此操作。

wp-config.php文件應位於站點的根文件夾中。 打開文件並查找以下代碼行:

 // ** MySQL settings - You can get this info from your web host ** // /** The name of the database for WordPress */ define('DB_NAME', 'database_name'); /** MySQL database username */ define('DB_USER', 'database_user'); /** MySQL database password */ define('DB_PASSWORD', 'database_password'); /** MySQL hostname */ define('DB_HOST', 'localhost');

第二對括號中的詳細信息,我們有'database_name','database_user'等,不會出現在上面的代碼中。 這些詳細信息特定於您的網站和主機。

這四行簡單的意思是:

  • 'database_name' - 你的數據庫名稱在這裡,例如'wordpress_vista'
  • 'database_user' - 您的數據庫用戶名放在這裡,例如 'wordpress_new'
  • 'database_password' - 這是您為數據庫用戶輸入密碼的位置,例如 '[email protected]#[email protected]#'
  • 'localhost' - 這是您輸入數據庫主機的地方。 大多數網絡主機的默認值為“localhost”。

如果這四個憑據中的任何一個不正確,您將收到錯誤建立數據庫連接消息。

此時,您需要做的是將這些憑據與存儲在數據庫中的憑據進行核對。

檢查數據庫名稱

首先,讓我們檢查一下wp-config.php中的數據庫名稱是否正確。 完成以下步驟:

要開始,請打開 phpMyAdmin。 在 HostGator、GoDaddy 和 Bluehost 等大多數託管帳戶中,phpMyAdmin 通常位於 cPanel 中的“數據庫”或“數據庫工具”選項卡或類似內容下:

打開 phpMyAdmin

您的主機應該自動將您登錄到 phpMyAdmin。 或者,在極少數情況下,系統可能會提示您輸入登錄屏幕。

登錄 phpMyAdmin 後,單擊“數據庫”選項卡以查詢數據庫列表。 從數據庫列表中,您能看到wp-config.php文件中DB_NAME之後出現的數據庫嗎?

檢查數據庫名稱
期望的示例。

如果你能看到它,你就是金子——問題不在於數據庫名稱。 如果您在 phpMyAdmin 中看不到數據庫,則需要聯繫您的 WordPress 託管服務提供商,因為問題可能出在他們的服務器上。

如果數據庫不存在,您將需要從備份中恢復一個(如果您有備份)或創建一個新的。 了解為什麼備份 WordPress 網站非常重要?

假設您已經找到了您的數據庫並且您在 wp-config.php 中有正確的名稱。 現在,讓我們檢查您的數據庫用戶名、密碼和主機是否正確。

檢查您的數據庫用戶名和密碼

檢查您的用戶名和密碼需要一些工作。 您需要創建一個.php文件並將其存儲在您的 WordPress 根文件夾中。 這是您找到wp-config.php文件的同一個文件夾。 創建一個新的.php文件,並將其命名為check.php或您想要的任何名稱。

您可以使用 FTP 或通過 cPanel 文件管理器之類的工具創建文件:

創建一個新文件

創建文件後,它應該會立即出現在您的根文件夾中。 右鍵單擊它並選擇Code Edit ,或選擇它並單擊菜單上的Code Editor 。 這應該會引導您進入一個空白頁面。 添加以下代碼:

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

確保將'localhost' - 'root' - 和'password'分別替換為wp-config.php中的數據庫主機(這幾乎總是默認值 localhost )、用戶名和密碼。 保存更改並在 Web 瀏覽器中訪問以下 URL - yoursite.com/check.php

確保將yoursite.com替換為您的實際域名。

如果您看到消息“連接成功”,則您的登錄詳細信息是正確的。

如果您看到“Could not connect: Access denied for user 'yourusername'@'localhost' (using password: yourpassword)”或其他錯誤,您的數據庫主機、用戶名或密碼是這裡的罪魁禍首。

如果您的登錄詳細信息不起作用,您需要創建新的,然後使用新的詳細信息更新您的wp-config.php

通常,這裡最簡單的選擇是:

  1. 創建一個新的數據庫用戶。
  2. 將該用戶分配給您的 WordPress 站點的數據庫。
  3. 更新您的wp-config.php文件以使用該新數據庫用戶。

旁白您的問題可能是最後一個憑據 DB_HOST 的結果。 默認情況下,大多數網絡主機使用“localhost”,但您可以嘗試根據您的網絡主機將其更改為 IP 地址或 URL。 您可以在 WordPress Codex 上獲取主機列表及其 DB_HOST 值。 如果您的主機不在列表中,請與他們聯繫以獲取此信息。

繼續,讓我們創建一個新用戶。

創建新的數據庫用戶和密碼

返回您的 cPanel 並訪問 MySQL 數據庫。 它也位於database tools下,與您找到 phpMyAdmin 的選項卡相同:

打開數據庫列表

單擊 MySQL 數據庫應打開如下內容:

數據庫接口

加載MySQL Databases屏幕後,向下導航到您擁有MySQL Users的位置。 在此之下,您會注意到添加新用戶:

創建一個新的數據庫用戶

輸入新的用戶名和密碼,然後單擊Create User 。 請記下您的wp-config.php文件的這些詳細信息。

注意:您的設置可能不同,但過程大致相同。

創建新用戶後,您需要將該用戶分配給您的 WordPress 數據庫。 這是wp-config.php文件中DB_NAME之後顯示的數據庫。

要將用戶分配給您的數據庫,請再次轉到MySQL 數據庫屏幕,然後向下滾動到您將看到將用戶添加到數據庫的位置:

將數據庫用戶分配給數據庫

選擇您剛剛創建的用戶和您的數據庫,然後單擊Add 。 在下一個屏幕上,確保授予數據庫用戶所有權限並保存這些更改:

授予數據庫用戶所有權限以修復建立數據庫連接的錯誤

現在,返回wp-config.php並使用新的用戶名和密碼信息更新文件。

確保引號之間沒有空格。 例如, ' your-username '不好,但'your-username'很好。 此外,使用單引號而不是雙引號。 保存您對wp-config.php所做的所有更改。

現在,嘗試訪問您的網站。 如果一切順利,它應該可以再次工作。

您仍然收到錯誤嗎? 如果是,您也可以嘗試其他修復。

2.您尚未遷移的現有站點上的錯誤消息

如果您在最近未進行任何重大更改(例如遷移到新主機)的現有站點上看到錯誤建立數據庫連接消息,則解決問題可能會有些棘手。 但是,您仍然可以採取一些步驟。

確保您的主機沒有遇到任何問題

在深入挖掘網站故障排除之前,您首先要確保問題不是由您的虛擬主機引起的。

一些 web 主機配置他們的環境,使您的站點的數據庫服務器與文件服務器分開。 在這些配置中,數據庫服務器可能已關閉但文件服務器仍在運行。 發生這種情況時,您將看到建立數據庫連接錯誤消息。

一個好的主機應該對此進行監控并快速解決問題。 但是,值得發送一條快速消息來支持或檢查您主機的正常運行時間狀態,以排除他們的任何問題。

檢查損壞的數據庫(並根據需要進行修復)

另一個可能突然影響 WordPress 網站的問題是數據庫損壞。 值得慶幸的是,很容易測試是否是這種情況。

要進行測試,請嘗試打開您網站的後端管理儀表板。

如果您的後端儀表板加載正常,但您網站的前端顯示錯誤建立數據庫連接消息,您可能有一個損壞的數據庫。

或者,您可能還會在後端看到一條不同的消息,例如“一個或多個數據庫表不可用”,這是數據庫損壞的另一個跡象。

另一方面,如果您在後端和前端看到完全相同的錯誤建立數據庫連接消息,則這不是問題,繼續執行此步驟毫無意義。 相反,只需跳到下一步。

那麼——如何修復損壞的 WordPress 數據庫?

值得慶幸的是,WordPress 包含自己的工具來執行此操作——您需要做的就是啟用它。 這是啟用 WordPress 數據庫修復工具的快速版本 - 我們將在下面向您展示更詳細的說明:

  1. 通過 FTP 連接或使用 cPanel 文件管理器(或主機的自定義文件管理器工具,如果適用)訪問服務器的文件。
  2. 編輯wp-config.php文件。
  3. 添加以下代碼片段 – define ( 'WP_ALLOW_REPAIR' , true);
  4. 在瀏覽器中訪問yoursite.com/wp-admin/maint/repair.php ,確保將yoursite.com替換為您的實際域名。
  5. 通過單擊修復數據庫運行數據庫修復工具。
  6. 數據庫修復工具完成後,刪除您添加到wp-config.php文件中的代碼片段。

這是將代碼片段添加到wp-config.php文件的樣子——將其添加到“/* 就是這樣,停止編輯! 快樂出版。 */”

 define ( 'WP_ALLOW_REPAIR' , true);
啟用 WordPress 數據庫修復工具

完成後,您可以訪問yoursite.com/wp-admin/maint/repair.php啟動數據庫修復工具。 單擊修復數據庫按鈕以啟動該過程,WordPress 將處理其餘的:

使用 WordPress 數據庫修復工具

數據庫修復過程完成後,您的站點應該有望重新開始工作。

如果是這樣,請確保返回到您的wp-config.php文件並刪除您之前添加的代碼片段。 添加此代碼片段後,任何人都可以訪問數據庫修復工具,即使他們沒有登錄 WordPress。

您不希望這樣,這就是默認禁用它的原因,以及為什麼您需要確保在完成後再次禁用它。

重新上傳乾淨的 WordPress 副本以修復損壞的文件

除了損壞的數據庫之外,錯誤建立數據庫連接消息的另一個常見原因可能是核心 WordPress 文件損壞。

診斷特定問題很棘手,但您會發現很多情況下,某個文件中的一些奇怪的調整會導致問題。

值得慶幸的是,您不必查找特定錯誤。 相反,您可以重新上傳核心 WordPress 軟件的干淨副本,以確保您的所有核心文件都完全符合其應有的狀態。

不用擔心 - 重新上傳核心 WordPress 軟件不會覆蓋您的任何數據。 它基本上只是重新安裝 WordPress 軟件,這與您的網站每次更新 WordPress 時所經歷的過程相同。

但是,由於您可能無法訪問 WordPress 儀表板,因此您需要通過 FTP 進行此操作。

首先,請執行以下操作:

  1. 轉到 WordPress.org 上的 WordPress 下載頁面
  2. 下載最新版本的 WordPress——它應該是一個大約 15 MB 的 zip 文件
  3. 下載完成後,在您的計算機上解壓縮 zip 文件

現在,您應該擁有一個包含所有核心 WordPress 軟件的文件夾。

打開此文件夾並刪除以下文件/文件夾:

  • wp-content文件夾
  • wp-config-sample.php文件
  • wp-config.php文件——這個文件實際上不應該存在,但如果你因為某種原因看到它,請確保刪除它。

通過刪除這些文件/文件夾準備好 WordPress 的干淨副本後,您就可以將其上傳到您的站點了:

  1. 使用 FTP 連接到 WordPress 站點的服務器
  2. 將所有剩餘的 WordPress 文件/文件夾上傳到您的根文件夾。 您希望所有內容都匹配,以便將新文件上傳到與現有文件相同的位置。
  3. 當您的 FTP 程序詢問您如何處理重複文件時,告訴它用新版本覆蓋所有文件。 如果您沒有看到有關重複文件的警告,請確保您將新文件上傳到正確的位置。 您想覆蓋服務器上所有現有的核心 WordPress 文件。

上傳完成後,您應該擁有所有核心 WordPress 文件的干淨副本,這有望修復錯誤建立數據庫連接消息。

沒有工作? 嘗試恢復最近的備份

如果到目前為止沒有任何效果,您最好的選擇可能是嘗試從您最近的備份中恢復您的網站。 如果您或您的主機對您的站點進行定期備份,您應該能夠將您的站點恢復到工作狀態,而幾乎不會丟失數據。

今天修復這個 WordPress 錯誤

建立數據庫連接錯誤的 WordPress 錯誤可能令人沮喪。 但是,幾乎在所有情況下,您的站點數據仍然存在,您只需要找到一種方法來修復連接,以便 WordPress 可以再次訪問數據庫。

在這篇文章中,我們分享了一些故障排除技巧來幫助您解決問題。

如果您最近遷移了站點或創建了全新的 WordPress 安裝,則可能是您站點的數據庫憑據存在問題。 如果沒有,請嘗試其他解決方案來解決問題。

我們希望本文能幫助您了解如何修復 WordPress 中的“錯誤建立數據庫連接”錯誤。 有關排除 WordPress 的其他一些技巧,您可能還想查看我們關於 WordPress 初學者如何避免這 7 個常見錯誤的文章。

輪到你了…

您以前是否遇到過並解決過此錯誤? 是什麼原因造成的,您是如何解決的? 請與我們分享您的提示和解決方案,讓這篇文章更加豐富。 提前致謝!