Lỗi Error Establishing a Database Connection là một trong những lỗi nghiêm trọng nhất khi dùng WordPress. Khi gặp lỗi này, toàn bộ website sẽ không thể hoạt động do không load được dữ liệu từ database.
Đây là lỗi liên quan đến kết nối Database, có thể do sai thông tin trong wp-config.php, database bị hỏng, hosting quá tải hoặc MySQL bị treo.
1. Cách xử lý lỗi Error Establishing a Database Connection
* Cách 1:
Bước 1: Kiểm tra thông tin Database trong wp-config.php
Trong hosting bạn truy cập File Manager → thư mục chứa dữ liệu, rồi mở file wp-config.php. Kiểm tra các thông tin sau và đối chiếu lại với thông tin User, database của bạn:
define(‘DB_NAME’, ‘ten_database’);
define(‘DB_USER’, ‘ten_user’);
define(‘DB_PASSWORD’, ‘matkhau’);
define(‘DB_HOST’, ‘localhost’);
Trong trường hợp không nhớ được các thông tin trên, bạn cần vào lại phần Manage My Databases trong Cpanel để lấy lại thông tin để cập nhật lại vào file wp-config.php

Bước 2: Kiểm tra MySQL có đang chạy không
Trong Cpanel, bạn truy cập vào phpMyadmin xem có bị treo không. Trong trường hợp bị treo cần liên hệ trực tiếp với nhà cung cấp dịch vụ để kiểm tra nguyên nhân, thông thường lỗi này do bị nghẽn query database nên sẽ cần restart lại.
* Cách 2: Sử dụng Script?
Chúng ta sẽ tạo file tên http://wp-db-check.sh/
Chúng ta sẽ dùng lệnh nano wp-db-check.sh, rồi copy đoạn code này vào:
#!/bin/bash
# Màu sắc cho dễ nhìn
RED=’\033[0;31m’
GREEN=’\033[0;32m’
YELLOW=’\033[1;33m’
NC=’\033[0m’ # No Colorecho -e “${YELLOW}=== BẮT ĐẦU KIỂM TRA KẾT NỐI DATABASE WORDPRESS ===${NC}”
# 1. Kiểm tra xem có đứng đúng thư mục không
if [ ! -f wp-config.php ]; then
echo -e “${RED}[LỖI] Không tìm thấy file wp-config.php!${NC}”
echo “Hãy chạy script này tại thư mục gốc (root) của website WordPress.”
exit 1
fi# 2. Lấy thông tin từ wp-config.php (Hỗ trợ cả nháy đơn và nháy kép)
DB_NAME=$(grep “define(” wp-config.php | grep “DB_NAME” | cut -d “‘” -f 4 | cut -d ‘”‘ -f 4)
DB_USER=$(grep “define(” wp-config.php | grep “DB_USER” | cut -d “‘” -f 4 | cut -d ‘”‘ -f 4)
DB_PASS=$(grep “define(” wp-config.php | grep “DB_PASSWORD” | cut -d “‘” -f 4 | cut -d ‘”‘ -f 4)
DB_HOST=$(grep “define(” wp-config.php | grep “DB_HOST” | cut -d “‘” -f 4 | cut -d ‘”‘ -f 4)# Xử lý trường hợp DB_HOST có port (ví dụ localhost:3306)
DB_HOST_ONLY=$(echo $DB_HOST | cut -d ‘:’ -f 1)echo -e “Đã tìm thấy cấu hình:”
echo -e ” – Database: $DB_NAME”
echo -e ” – User: $DB_USER”
echo -e ” – Host: $DB_HOST”echo -e “\n${YELLOW}>>> Bước 1: Kiểm tra trạng thái MySQL Service trên VPS…${NC}”
# Kiểm tra service MySQL hoặc MariaDB
if systemctl is-active –quiet mysql; then
SERVICE_NAME=”mysql”
elif systemctl is-active –quiet mariadb; then
SERVICE_NAME=”mariadb”
else
# Cả 2 đều không active, thử restart
echo -e “${RED}[CẢNH BÁO] MySQL/MariaDB Service đang KHÔNG CHẠY!${NC}”
echo -e “Đang thử khởi động lại service…”
# Ưu tiên restart mariadb trước (phổ biến trên CyberPanel/VPS mới)
if systemctl restart mariadb 2>/dev/null; then
echo -e “${GREEN}[ĐÃ FIX] Đã khởi động lại MariaDB thành công.${NC}”
SERVICE_NAME=”mariadb”
elif systemctl restart mysql 2>/dev/null; then
echo -e “${GREEN}[ĐÃ FIX] Đã khởi động lại MySQL thành công.${NC}”
SERVICE_NAME=”mysql”
else
echo -e “${RED}[LỖI] Không thể khởi động MySQL. Vui lòng kiểm tra log hệ thống.${NC}”
exit 1
fi
fiif [ ! -z “$SERVICE_NAME” ]; then
echo -e “${GREEN}[OK] Service $SERVICE_NAME đang chạy ổn định.${NC}”
fiecho -e “\n${YELLOW}>>> Bước 2: Test kết nối User & Password…${NC}”
# Dùng lệnh mysql client để test kết nối (cần cài mysql-client, mặc định VPS thường có)
if mysql -h “$DB_HOST_ONLY” -u “$DB_USER” -p”$DB_PASS” -e “use $DB_NAME;” 2>/dev/null; then
echo -e “${GREEN}[THÀNH CÔNG] Kết nối Database hoàn hảo!${NC}”
echo -e “User, Mật khẩu và Tên Database trong wp-config.php đều ĐÚNG.”
else
echo -e “${RED}[THẤT BẠI] Không thể kết nối tới Database.${NC}”
echo -e “Nguyên nhân có thể là:”
echo -e “1. Sai mật khẩu trong wp-config.php (Check lại file).”
echo -e “2. User database chưa được gán quyền vào Database này.”
# Test riêng User/Pass (bỏ qua tên DB) để xem sai pass hay sai quyền
if mysql -h “$DB_HOST_ONLY” -u “$DB_USER” -p”$DB_PASS” -e “quit” 2>/dev/null; then
echo -e “${YELLOW}-> Gợi ý sâu hơn: User/Pass ĐÚNG, nhưng sai tên Database hoặc chưa cấp quyền.${NC}”
else
echo -e “${RED}-> Gợi ý sâu hơn: Sai User hoặc Password.${NC}”
fi
fiecho -e “\n${YELLOW}=== KẾT THÚC KIỂM TRA ===${NC}”
Sau đó cấp quyền chạy (chmod)
chmod +x wp-db-check.sh
và chạy file:
./wp-db-check.sh
Chúc các bạn thành công!

























