在 WordPress 中使用 MySQL

已發表: 2023-02-12

如果您管理 WordPress 網站,您可能會發現自己想要了解更多有關其數據庫功能的信息。 了解您的網站在幕後如何工作很有用,有時您甚至可能需要直接訪問您網站的數據庫。

這就是 MySQL 的用武之地。結構化查詢語言 (SQL) 是 WordPress 數據庫的管理系統。 我們稍後會詳細介紹,但只要說數據庫是您網站的大腦,而 MySQL 是神經系統,來回發送命令以檢索信息和執行操作就足夠了。

在這篇文章中,我們將詳細解釋 MySQL 如何在 WordPress 上工作。 此外,我們將回顧您可能遇到的幾個數據庫錯誤,並解釋如何補救它們。 讓我們開始吧!

MySQL解釋

您可能聽說過之前將數據庫描述為文件櫃的地方,它是一個將您網站的所有重要信息分類存放的地方。 在這個類比中,櫥櫃中的各個文件夾是保存信息的數據庫表。

至於 MySQL,它是如何發出請求以在這些文件夾中放置或刪除數據的。 您還可以使用 MySQL 為文件櫃的每個部分允許放置的內容設置規則。

然而,MySQL 不能單獨運行。 它是用於創建網站的一系列軟件應用程序的一部分。 其他組件包括 Linux、Apache、MySQL 和 PHP (LAMP)。 他們共同組成了開源編程世界的“夢之隊”。

將 MySQL 用於 WordPress

對於 WordPress,PHP 腳本語言用於從 MySQL 數據庫發送和檢索信息。 這兩個元素處理從登錄站點用戶到存儲主題和插件信息以進行動態內容顯示的所有事情。

MySQL 使用表結構來存儲數據。 大多數網絡主機都帶有一個名為 phpMyAdmin 的 MySQL 用戶界面軟件。 這個免費的開源軟件使運行數據庫命令變得容易。 它使您能夠編輯、刪除或創建表、行和字段:

在標準的 WordPress 安裝過程中,會在您的數據庫中創建 12 個表。 您可以在上圖中的左側看到它們。 這些表格包括您的站點運行所需的關鍵信息。

例如, wp_options表存儲您可以從 WordPress 儀表板中的“設置”菜單訪問和控制的選項。 它也是各種與小部件相關的設置的所在地。

正如您在 phpMyAdmin 面板中看到的那樣,當您單擊其名稱時,有關任何表中包含的所有數據的信息都將可見。 這包括與特定字段關聯的任何值或參數。

MySQL 插件/擴展

雖然沒有多少插件可以直接增強 WordPress 中的 MySQL 功能,但如果您計劃經常手動更改或更改數據庫,則有一些工具值得一試。

例如,如果您希望能夠從您的 WordPress 儀表板訪問您網站的 phpMyAdmin 面板,而不是通過您的虛擬主機的控制面板,WP phpMyAdmin 是一個有用的插件:

這是一個簡單但流行的解決方案,可以方便地訪問您的數據庫。 這也可以更容易地解決與 MySQL 相關的錯誤,我們將在下面看到。

WordPress 中常見的 MySQL 錯誤(以及如何解決)

數據庫錯誤可能發生在任何人身上,但處理起來卻令人沮喪。 為了讓您的生活更簡單,了解可能出現的最常見問題以及每個問題可能的解決方案會有所幫助。 讓我們看一下典型的 MySQL 問題的五個示例。

1.建立數據庫連接錯誤

如果您在嘗試訪問您的網站時遇到“建立數據庫連接時出錯”之類的消息,這可能意味著您的 URL 指向錯誤的數據庫或您的網站遇到連接錯誤。

數據庫連接錯誤意味著您將無法訪問您的網站。 您也可能會被阻止登錄您的管理面板。 在這種情況下,您的wp-config.php文件很可能是罪魁禍首。

解決此問題的第一種方法是訪問您網站的託管帳戶並恢復最近的備份。 這將重置您的wp-config.php文件,讓您可以訪問您的管理面板。 但是,如果無法訪問您網站的備份,還有另一種解決方案。

您還可以使用 FileZilla 等安全文件傳輸協議 (SFTP) 應用程序編輯wp-config.php文件。 連接到您的網站後,您的wp-config.php文件可以在您網站文件的根目錄中找到。

如果打開該文件,您會在頂部附近看到所有數據庫信息。 然後,您可以檢查您的數據庫名稱、用戶名或有關您站點的任何其他信息是否有誤。

如果您不確定該信息應包括哪些內容,您可能需要聯繫您的房東。 您將主要關心驗證正確的“DB_USER”、“DB_PASSWORD”和“DB_HOST”。 完成必要的更正後,請務必保存更改並將文件上傳回您站點的服務器。

2.錯誤#1005

#1005 錯誤是服務器端問題,而不是您站點的問題。 它發生在無法創建必要的表時。 根據消息字符串的詳細信息,您可能會獲得有關錯誤原因的更多信息。

例如,您的錯誤消息可能如下所示:

 無法創建表“%s”(錯誤號:%d)

此特定問題最常見的“errno”是“(errno: 150)”。 這意味著存在外鍵約束問題。 換句話說,您嘗試創建的表很可能與集合約束衝突。 該錯誤是為了防止多個表之間的數據出現不一致。

為了解決外鍵約束錯誤,您需要做一些調查並檢查數據庫表是否存在不一致。 這意味著您需要:

  • 確保涉及的表都引用相同的數據庫引擎。
  • 檢查以驗證您正在編制索引的字段是否都具有相同的類型或長度。

此錯誤通常涉及簡單的不一致,只需要一點時間和耐心來糾正。

3.錯誤#1213

下一個錯誤通常會出現在“ER_LOCK_DEADLOCK”符號旁邊。 您還應該收到如下所示的消息:“嘗試獲取鎖時發現死鎖; 嘗試重新啟動交易”。 幸運的是,這是一個帶有說明的錯誤,您可以使用它來快速解決它。

當您執行遇到死鎖的事務時,您的事務將停止並回滾。 這是由於 SQL 命令停止了事務並撤消了它所做的任何更改。 您可以將此視為自動“撤消”功能,使您的應用程序能夠停止並採取糾正措施。

在這種情況下,您只需要再次運行交易。 回滾將釋放觸發死鎖的鎖,事務現在應該成功完成。

4.錯誤#1064

如果您收到 #1064 錯誤,您還會看到一個顯示為“ER_PARSE_ERROR”的符號。 這意味著您的語法有誤。 這可能是由於拼寫錯誤或使用了過時的命令。

您還應該收到一條包含一些有用信息的消息,例如:

 在 %d 行的“%s”附近的 %s

這會將您定向到查詢中的近似行,您可以參考它來定位和修復語法錯誤。 也有一些在線工具可以幫助您發現特別長的查詢中的錯誤。

5. 錯誤#2003

最後,當您無法連接到 MySQL 服務器時,會出現 #2003 錯誤。 錯誤符號將​​指示主機連接問題:

 CR_CONN_HOST_ERROR

換句話說,此錯誤消息讓您知道您的網絡連接已被拒絕。 解決問題的第一步是確定 MySQL 服務器是否正在運行。 接下來,您需要確保您指定的網絡連接和端口與您在服務器上配置的相同。

您可以通過 phpMyAdmin 面板執行此操作,方法是轉到狀態 > 監控並查看服務器上的活動以查找問題。 如果您的服務器沒有運行,您還需要完成重新啟動它的步驟。

如果您的 mysqld 進程正在運行,您將需要對服務器與網絡的連接有更深入的了解,以便您可以開始處理可能的連接中斷。

使用 WP Engine 提升您的知識水平

雖然不是每個人都會定期花時間在他們網站的 MySQL 服務器上,但了解在遇到錯誤時去哪裡尋求幫助是很有用的。 這就是了解在何處可以在線找到最佳建議和開發人員資源的原因。

為了幫助您始終保持站點平穩運行,我們提供了多種託管解決方案和工具。 這包括 WP Engine 錯誤日誌,它可以幫助您為訪問者提供最好的數字體驗!