WordPress 顯示資料庫連線錯誤?先分辨帳密、主機與資料庫服務
網站顯示「Error establishing a database connection」,後台也打不開,表示 WordPress 無法建立資料庫連線;它本身無法區分帳密不符、主機不可達、連線數耗盡或資料庫服務故障。先記錄發生時間、是否所有站台受影響,以及最近搬家、密碼輪替或主機變更。避免反覆重設密碼,因為其他網站或排程可能共用同一帳號。
確認服務與站台範圍
在主機控制台確認資料庫服務狀態、儲存空間、配額與錯誤日誌;共享主機請主機商查詢。如果同一主機多站同時失敗,優先請主機商檢查資料庫服務、網路及連線上限;僅單站失敗時核對該站使用的資料庫、使用者與授權。網站檔案系統滿了不必然等同資料庫容量滿,應分別確認。
安全核對 wp-config.php
先確認網域對應的實際網站根目錄,以受保護方式備份 wp-config.php,再核對 DB_NAME、DB_USER、DB_PASSWORD 與 DB_HOST;DB_HOST 不一定是 localhost,也可能指定主機或連接埠。比對控制台列出的實際資料庫、使用者與授權,以及主機商提供的資料庫主機。不要把密碼貼在工單、截圖或命令列參數。WordPress 官方常見錯誤文件也將設定與主機問題列為檢查方向。
若設定看似一致,請主機商以該網站身分在相同執行環境測試資料庫連線,確認服務可達、使用者對正確資料庫有權限,再看伺服器錯誤日誌;管理員帳號能連線不代表網站帳號也能連線。若確定需輪替密碼,先盤點共用程式,在維護時段同步修改資料庫帳號與所有授權使用處;勿將資料庫開放至公開網路。
驗收與復原
如修改設定前先保留原檔及權限,修改後驗證首頁、後台、文章與受控測試功能,並觀察日誌;成功載入一次不等於間歇問題已解。若設定有誤造成惡化,以備份還原檔案與原權限,並與主機商協調帳密狀態;若已輪替密碼,單獨還原檔案未必能恢復連線。若錯誤其實是 PHP 500,可參考PHP 錯誤日誌排查。
依測試結果分辨網路與認證
管理者可從網站實際執行環境測試資料庫主機的 TCP 連通性。以下主機及埠僅為示例,請先確認實際設定;Unix socket 架構不適用:
nc -vz db.example.net 3306
succeeded 僅代表該測試端 TCP 連線建立,不代表帳號認證或 PHP 容器連線成功。timeout 請查路由與防火牆;connection refused 請核對服務監聽及連接埠。互動登入時使用 -p 讓系統提示密碼,不要將密碼放在命令列:
mysql --host=db.example.net --user=site_user -p site_database
登入後執行 SELECT DATABASE(); 核對資料庫,再用 exit 離開。Access denied 應查密碼、允許的來源主機與授權;Unknown database 應查資料庫名稱與存在狀態。用戶端與 PHP 的 socket 或 TLS 設定可能不同,不應只憑測試結果認定 PHP 已修復;勿為測試授予全部權限。









臉書留言
一般留言