Sẽ có nhiều người gặp vấn đề này đây, hướng dẫn thì có nhiều các bạn có thể tham khảo ở giải pháp trên The Social Media Guide, nhưng tôi cũng xin hướng dẫn qua để các bạn xử lý phù hợp cho từng phiên bản của WordPress.
Về nguyên lý chung chúng ta chỉ cần tăng thời gian Session Timeout của MySQL lên để tránh xảy ra lỗi trên bằng dòng lệnh:
$this->query(“set session wait_timeout=300″);
Các hướng dẫn thường thiết lập thông số này là 600 giây, nhưng theo tôi, nếu bạn đang chạy share hosting và giới hạn số lượng process xử lý, bạn nên để con số này thấp xuống để hệ thống của bạn ít bị ảnh hưởng. Thiết lập mặc định của MySQL là 10 giây.
Nhưng tùy với phiên bản của WordPress mà cách đặt dòng lệnh trên khác nhau, có phiên bản đặt trong Constructor khi tạo Object, có phiên bản đặt trong db_connect, tốt nhất chúng ta chỉ cần tìm đoạn thông báo lỗi của không kết nối được với Cơ sở dữ liệu để chèn thêm vào dòng lệnh trên.
Tìm kiếm cụm “!$this->dbh” trong file /wp-includes/wp-db.php, trong một số trường hợp tìm được sẽ có dạng
if ( !$this->dbh ) {
$this->bail( sprintf( /*WP_I18N_DB_CONN_ERROR*/”
Error establishing a database connection
This either means that the username and password information in your wp-config.php
file is incorrect or we can’t contact the database server at %s
. This could mean your host’s database server is down.
- Are you sure you have the correct username and password?
- Are you sure that you have typed the correct hostname?
- Are you sure that the database server is running?
If you’re unsure what these terms mean you should probably contact your host. If you still need help you can always visit the WordPress Support Forums.
“/*/WP_I18N_DB_CONN_ERROR*/, $this->dbhost ), ‘db_connect_fail’ );
return;
}
$this->query(“set session wait_timeout=300”);
Thêm dòng lệnh trên vào sau dòng lệnh if trên là xong, giờ chỉ cần theo dõi xem hệ thống con phun ra các lỗi liên quan tới vấn đề này không, nếu còn, bạn nên tăng thời gian đợi lên cho phù hợp với hệ thống của bạn.