Thông báo lỗi 'Error establishing a database connection' xuất hiện khi WordPress không thể truy xuất dữ liệu từ cơ sở dữ liệu của website. WordPress lưu trữ tất cả meta thông tin, dữ liệu bài viết, thông tin đăng nhập, cài đặt plugin và dữ liệu trang trong database. Tuy nhiên, theme, hình ảnh và file core WordPress không lưu trong database. Mỗi khi bạn hoặc ai đó truy cập website, một truy vấn PHP được thực thi để lấy dữ liệu từ database. Khi chức năng này bị gián đoạn (không lấy được dữ liệu), lỗi này xuất hiện, đơn giản nghĩa là WordPress không thể kết nối đến database.
Lỗi này khá phổ biến và nếu bạn từng dùng WordPress trên máy chủ web, rất có thể đã gặp lỗi này ít nhất một lần. Bài viết sẽ đề cập các nguyên nhân có thể và cung cấp danh sách giải pháp để khắc phục.
Nguyên nhân gây ra lỗi 'Error Establishing a Database Connection' trong WordPress
Lý do khiến WordPress không kết nối được đến database server có thể nhiều. Những nguyên nhân phổ biến nhất:
- Thông tin đăng nhập database không hợp lệ: Nguyên nhân nổi bật nhất là thông tin đăng nhập (username, password, database name, host) WordPress dùng để kết nối database server không đúng. Nếu sai, WordPress không thể kết nối.
- Database bị hỏng (Corrupt Database): Nếu database bị hỏng (bảng/cột bị thay đổi, WordPress không đọc được giá trị mong muốn), lỗi sẽ xuất hiện.
- Sự cố Database Server: Database server down hoặc không thể kết nối (ví dụ host web server và database server cùng chỗ nhưng database offline).
- File WordPress bị hỏng (Corrupt WordPress files): Hacker có thể xâm nhập, sửa file trong thư mục WordPress (thêm, xóa, sửa file gốc). File hỏng trong thư mục cài đặt cũng gây lỗi này.
- Bộ nhớ PHP không đủ (Insufficient PHP Memory): Nếu web server không đủ PHP memory, lỗi sẽ xảy ra. Cần cập nhật file php.ini để tăng memory limit.
Giải pháp 1: Kiểm tra file wp-config.php trong thư mục cài đặt WordPress
Điều đầu tiên là kiểm tra file wp-config.php trong thư mục WordPress. Xem nội dung có bị thay đổi không.
Có thể dùng File Manager trong cPanel của hosting hoặc dùng FTP client như FileZilla kết nối đến server và mở file trên trình soạn thảo văn bản cục bộ.
Khi đã truy cập wp-config.php, kiểm tra các dòng sau có tồn tại không:
define('DB_NAME', 'database-name');
define('DB_USER', 'database-username');
define('DB_PASSWORD', 'database-password');
define('DB_HOST', 'localhost')
Giá trị DB_HOST có thể không phải 'localhost' nếu database server không cùng IP với web server (thường khi không host local trên máy tính của bạn).
Giải pháp 2: Thử kết nối giả (dummy connection) đến Database Server
Tiếp theo, kiểm tra xem có kết nối thành công đến database server bằng username/password của tài khoản database user không.
Tạo file mới testdatabaseconnection.php trong thư mục gốc website với nội dung sau và truy cập từ trình duyệt. Nếu hiện "Connected successfully" thì MySQL server hoạt động bình thường.
<?php
$link = mysqli_connect('localhost', 'username', 'password');
if (!$link) {
die('Could not connect: ' . mysqli_error());
}
echo 'Connected successfully';
mysqli_close($link);
?>
Nhớ thay 'username' và 'password' bằng thông tin tài khoản database user của bạn.
Nếu không nhớ username/password database user, vào cPanel hosting, mục database để xem. Hoặc nếu tự tạo database, bạn có thể nhớ.
Nếu nhận thông báo lỗi thay vì "Connected successfully", hãy đảm bảo bạn dùng đúng username/password.
Giải pháp thay thế: tạo user mới cho database server với toàn quyền, dùng tài khoản đó truy cập. Test tài khoản mới bằng phương pháp trên, nếu thành công, cập nhật wp-config.php với username/password mới.
Giải pháp 3: Sửa chữa Database (nếu bị hỏng)
Nếu các bước trên thất bại và vẫn không kết nối được, hãy cân nhắc sửa chữa database vì có thể đã hỏng. Tin tốt là WordPress có chế độ sửa database, kích hoạt bằng cách thêm một dòng vào wp-config.php.
- Thêm dòng sau vào wp-config.php:
define('WP_ALLOW_REPAIR', true); - Lưu file, truy cập link sau để khởi động chế độ sửa database:
https://yourdomain.com/wp-admin/maint/repair.php
- Thay yourdomain.com bằng domain website của bạn.
- Truy cập trang, nhấp tùy chọn "Repair Database".

Quá trình sẽ mất một chút thời gian. Sau khi xong, kiểm tra xem lỗi còn không.
Giải pháp 4: Thực thi truy vấn SQL trong PhpMyAdmin
Một người dùng báo cáo khắc phục được lỗi bằng cách chạy truy vấn SQL sau trong PhpMyAdmin (trong cPanel hosting – PhpMyAdmin là ứng dụng web quản lý database).
UPDATE wp_options SET option_value='YOUR_SITE_URL' WHERE option_name='siteurl'
Thay YOUR_SITE_URL bằng link website của bạn.
Sau đó kiểm tra xem lỗi đã khắc phục chưa.
Giải pháp 5: Cài đặt lại file core WordPress (Website không bị ảnh hưởng)
Sau khi thử hết các giải pháp trên mà không hiệu quả, hãy cài lại file core WordPress.
- Truy cập WordPress.org, tải file zip WordPress mới nhất.
- Kết nối webserver bằng FileZilla, điều hướng đến thư mục cài đặt WordPress.
- Xóa thư mục 'wp-content' và file 'wp-config-sample.php', sau đó upload file zip WordPress vừa tải. Giải nén nội dung zip ngay tại thư mục đó (không phải thư mục con).

- Giải nén zip có thể dùng FileZilla hoặc File Manager cPanel (nhiều webserver hỗ trợ giải nén zip).
- Xong. Kiểm tra lại xem website WordPress còn lỗi không.