Nội dung
Bài viết hôm này mình sẽ hướng dẫn bạn thực hiện xử lý lỗi Error establishing a database connection khi truy cập vào website WordPress của mình. Lỗi này hiển thị ra do website WordPress của bạn không thể kết nối đến máy chủ cơ sở dữ liệu (database), vì vậy để xử lý lỗi này ta sẽ có một số trường hợp:
- Website WordPress không kết nối được với database do thông tin kết nối sai.
- Tiền tố cơ sở dữ liệu không khớp với giá trị
$table_prefix
khai báo trong wp-config.phbp - Máy chủ quá tải khiến dịch vụ MySQL không hoạt động được.
- Nếu sử dụng VPS/Máy chủ riêng, thì có thể dung lượng đĩa cứng không đủ để MySQL ghi dữ liệu.
Kiểm tra thông tin kết nối trong wp-config.php
Ở mã nguồn WordPress, wp-config.php
là file quan trọng nhất. Đây là nơi bạn xác định các chi tiết cho WordPress để kết nối với cơ sở dữ liệu của bạn. Nếu bạn thay đổi mật khẩu database MySQL bạn cần phải cập nhật lại thông tin database. Phần thông tin database của một trang có dạng như sau.
define('DB_NAME', 'database-name'); define('DB_USER', 'database-username'); define('DB_PASSWORD', 'database-password'); define('DB_HOST', 'localhost');
Giá trị DB_Host
của bạn có thể không là localhost mà tùy thuộc vào host, nó sẽ khác nhau, thường share hosting có giá trị là localhost . Còn nếu bạn sử dụng mysql remote từ một trang khác bạn có thể cần để ý cập nhật cho đúng.
Nếu mọi thứ trong file wp-config.php
đều đúng (chắc chắn kiểm tra cả lỗi chính tả) thì chắc chắn có vấn đề gì đó sai trên thiết lập hosting/server của bạn.
Kiểm tra phân quyền User và Database
Bạn cần phải chắc chắc rằng user cấu hình trong wp-config.php
phải có đầy đủ quyền thao tác với database. Và ở trong cPanel bạn thực hiện cập nhật quyền như sau
- Bạn kiểm tra xem việc phân quyền database cho user bên trong trang quản trị mysql.
- Bạn kiểm tra xem user có full quyền với database hay không tại phần Add User To Database
- Bạn bấm tick vào full quyền và nhấn thay đổi.
Kiểm tra giá trị table prefix value
Bạn nên chắc chắn rằng giá trị prefix value của mình phải được thiết lập đúng giống như trên database như chẳng hạn trong wp-config.php
có giá trị là.
$table_prefix = 'wp_';
Trên database của tôi cũng phải đúng dạng wp_ Nhưng ở ảnh dưới mình đặt là wp0l_
- Lưu ý: Bạn có thể đặt tuỳ ý nhé
Kiểm tra đảm bảo extension mysql trên php đã được bật.
Kiểm tra extension Mysql, Mysqli của PHP. Đối với hosting sử dụng Cloudlinux sẽ được trang bị thêm chức năng PHP Selector cho phép bật/tắt PHP Extension. Lúc này các bạn cần kiểm tra xem Extension Mysql đã được bật hay chưa.
- Đối với PHP 5 cần đảm bảo các extension sau được bật
- Đối với PHP 7.x cần đảm bảo các extension sau được bật
Thử Repair WordPress Database
Có thể đôi khi do database của bạn lỗi, Bạn có thể thử sửa lỗi database bằng cách thêm dòng sau vào file wp-config.php
define('WP_ALLOW_REPAIR', true);
Sau đó bạn truy cập đường link dẫn: https://tên_web_site_của_bạn.com/wp-admin/maint/repair.php
Nếu như tất cả các cách trên không thành công, bạn có thể liên hệ với quản trị hosting kiểm tra thêm cho bạn.