Phần lớn, bạn ít gặp lỗi error establishing a database connection. Tuy nhiên đây lại là lỗi nghiêm trọng trong database sẽ khiến trang web của bạn không hiển thị. Vậy làm sao để khắc phục? Hãy cùng tham khảo hướng dẫn sau của Hosting Việt để sửa lỗi error establishing a database connection này nhé!
Nguyên nhân phát sinh lỗi error establishing a database connection WordPress là gì?
WordPress viết bằng ngôn ngữ PHP và MySQL. Khi khách truy cập vào bất kỳ trang nào trên website thì mã PHP sẽ truy xuất dữ liệu MySQL để lấy thông tin cần thiết và chạy trang.
Khi hệ thống hiển thông báo lỗi Error establishing a database connection, tức là vì bất kỳ một lý do nào đó, mã PHP không thể kết nối với dữ liệu MySQL và truy xuất thông tin để dựng trang.
Thông thường có 3 trường hợp làm phát sinh lỗi kết nối database tại WordPress:
- Thông tin đăng nhập dữ liệu MySQL của WordPress sai
Trong trường hợp, thông tin đăng nhập bị thay đổi do WordPress chuyển sang nhà cung cấp hosting mới thì chắc chắn website của bạn sẽ không thể truy cập vào database với thông tin cũ.
Lưu ý là thông tin đăng nhập database WordPress khác với thông tin tài khoản được cấp để vào quản lý tài khoản hosting (hosting account control panel).
- Có một hay nhiều Plugin khiến database bị lỗi hoặc bị hỏng
Có thể một Plugin nào đó mà bạn upload đã vô tình khiến database WordPress bị lỗi hoặc thậm chí là bị hỏng.
- Server chứa database bị sập
Database không thể truy cập được có thể do bị lỗi kỹ thuật hoặc traffic tăng đột biến khiến server không xử lý kịp và bị sập.
Các bước sửa lỗi error establishing a database connection
Bước 1: Xác định nguyên nhân lỗi error establishing a database connection WordPress
Đây là bước cực kỳ quan trọng giúp bạn có cách xử lý lỗi chính xác. Đầu tiên, bạn kiểm tra lỗi ở cả front – end và back – end (tức sitename.com và sitename.com/wp-admin). Nếu cả 2 đều có lỗi Error establishing a database connection giống nhau thì bạn tiếp tục bước 2.
Tuy nhiên, nếu trường hợp website bị down và khi đăng nhập, bạn thấy xuất hiện một lỗi khác là “One or more database tables are unavailable. The database may need to be repaired”, điều này có nghĩa database bị lỗi, bạn cần sửa chúng.
Và nếu gặp lỗi database, bạn có thể kích hoạt tính năng repair database của WordPress. Để thực hiện điều này, bạn truy cập vào file wp-config.php trong thư mục gốc của file cài đặt WordPress.
Sau khi mở file wp-config.php, bạn thêm vào dòng “define( 'WP_ALLOW_REPAIR', true );” trước đoạn “* That's all, stop editing! Happy blogging. */” và nhấn nút Save.
Như vậy, tính năng tự động sửa lỗi database đã được kích hoạt. Tiếp đến, hệ thống sẽ hiện ra Bảng thông báo có 2 lựa chọn sửa lỗi là Sửa chữa (Repair Database) và Sửa chữa và tối ưu dữ liệu (Repair and Optimize Database). Bạn chọn 1 trong 2 cách. Tuy nhiên, với cách 2 sẽ tốn nhiều thời gian hơn.
Lưu ý: trang sửa chữa database không bảo mật và bất kỳ ai cũng có thể truy cập vào sitename.com/wp-admin/maint/repair.php mà không cần đăng nhập. Vì thế, sau khi đã sửa lỗi xong, bạn hãy xóa đoạn code “define( 'WP_ALLOW_REPAIR', true );” trong file wp-config.php. Việc này giúp tắt trang sửa lỗi, đồng thời, ngăn chặn được những người có ý đồ không tốt với database của trang web.
Bước 2: Kiểm tra cài đặt kết nối database trong file wp-config.php
Nếu bước 1 không hoạt động và lỗi vẫn còn thì bạn xem lại cấu hình kết nối trong file wp-config.php.
Để mở file, bạn đăng nhập vào File Manager trong control panel hosting hoặc qua FTP để mở file. Sau đó, cấu hình kết nối database hiện ra như sau:
- // ** MySQL settings - You can get this info from your web host ** //
- /** The name of the database for WordPress */
- define('DB_NAME', 'u694443746_aujev');
- /** MySQL database username */
- define('DB_USER', 'u694443746_vaven');
- /** MySQL database password */
- define('DB_PASSWORD', 'zuWupEXEdu');
- /** MySQL hostname */
- define('DB_HOST', 'mysql');
- /** Database Charset to use in creating database tables. */
- define('DB_CHARSET', 'utf8');
- /** The Database Collate type. Don't change this if in doubt. */
- define('DB_COLLATE', '');
Còn bên dưới là thông tin Prefix:
$table_prefix = 'wp_';
Có 4 thông tin quan trọng để WordPress dùng truy cập vào database:
- DB_Name: tên database.
- DB_USER: tên username.
- DB_PASSWORD: mật khẩu đăng nhập.
- DB_HOST: Database hostname.
- Table_prefix: Database prefix
Và nếu một trong số 4 giá trị này không đúng thì WordPress sẽ không thể kết nối được với database. Vì thế hệ thống sẽ hiển thông báo error establishing a database connection WordPress.
Để xác định lại các thông tin trên chính xác hay chưa, bạn truy cập vào MySQL databases trên control panel.
Sau đó, bạn đến mục “List of Current MySQL Databases And Users”. Tại đây, tất cả các thông tin về database và users đang dùng cho website sẽ được liệt kê. Tiếp đến, bạn chỉ việc đối chiếu các thông tin của cột MySQL Database, MySQL User, MySQL Host có khớp với DB_NAME, DB_USER, DB_HOST hay chưa. Trong trường hợp chúng khác, thì bạn cập nhật và lưu lại.
Tải lại trang WordPress, nếu vẫn còn lỗi kết nối database, thì có thể nguyên nhân do MySQL user password không khớp giá trị trong wp-config.php. Để chúng khớp nhau, bạn chỉ cần nhấn vào dấu “+” và chọn nút “Change password”. Sau đó cập nhật lại password mới cho wp-config.php, rồi tải lại trang WordPress.
Nếu WordPress vẫn còn lỗi kết nối database, bạn kiểm tra thêm “table prefix”. Bằng cách vào MySQL databases, tới phpMyadmin, rồi tìm “table prefix” và kiểm tra xem chúng đã giống với giá trị trong file wp-config.php chưa. Nếu khác thì bạn cập nhật lại.
Trong trường hợp đã thử các cách của bước 2 mà vẫn còn lỗi thì thực hiện tiếp như sau.
Kiểm tra cPanel
Bạn vào MySQL Databases, đến mục Current Databases.
Tại đây, bạn so sánh và cập nhật giá trị của cột Database và Privileged Users để chúng khớp với DB_NAME và DB_USER trong file wp-config.php.
Mỗi khi cập nhật thay đổi, bạn nhớ nhấn lệnh refresh để kiểm tra tình trạng sửa lỗi error establishing a database connection.
Kiểm tra database name value
Nếu trong mục Current Databases, bạn không thấy liệt kê giá trị giống như DB_NAME trong file wp-config.php. Điều này có nghĩa database đang bị thiếu. Việc này thường xảy ra khi website chuyển đến một nhà cung cấp hosting mới. Vì thế, nếu gặp tình huống này, bạn nên liên hệ với đơn vị cung cấp mới và yêu cầu họ chuyển hoặc khôi phục database.
Kiểm tra thông tin database user
Để thực hiện việc kiểm tra này, bạn xem giá trị cột Privileged Users và chắc chắn chúng trùng khớp với cột DB_USER của file wp-config.php.
Thêm priviledged user bị thiếu
Trong quá trình chuyển sang nhà cung cấp host mới hoặc cài WordPress thủ công, rất dễ xảy ra tình trạng quên thêm user vào database. Để sửa lỗi này, bạn vào mục “Add User To Database”.
- Kiểm tra giá trị của Current Users có giống với DB_USER value, và đã được liệt kê trong wp-config.php chưa.
- Nếu đã được liệt kê, bạn sử dụng user này trong phần “Add User To Database”, chọn tiếp “User”, chọn database tương ứng và nhấn “Add”. Sau đó, chọn “All Privileges”, click tiếp “Make Changes” rồi quay lại bằng nút “Go back”.
- Nếu không được liệt kê, bạn click “Add New User” để thêm MySQL username. Rồi điền thông tin username thiếu.
Và sau khi username đã được tạo, bạn cần thực hiện lại bước 2 theo hướng dẫn trên để thêm nó vào database. Sau đó, refresh lại trang để kiểm tra lỗi đã fix chưa.
Lưu ý: giá trị DB_PASSWORD trong file wp-config.php rất quan trọng. Vì thế, bạn nên cập nhật nó ngay để tránh bị mất trong quá trình sửa lỗi.
Kiểm tra giá trị host
Nếu đã thực hiện các cách sửa lỗi trên vẫn vẫn chưa được thì bạn cần kiểm tra giá trị host và password. Hãy đề nghị nhà cung cấp gửi email thông báo về giá trị host. Và tải lại trang WordPress để xem lỗi error establishing a database connection WordPress fix chưa khi bạn đổi MySQL database host nhé.
>>Tham khảo : Cách sửa lỗi The uploaded file exceeds the upload_max_filesize directive in php.ini
Kiểm tra thông tin mật khẩu đăng nhập
Bạn vào control panel, và đi đến mục MySQL Databases, chọn tiếp Current Users và thực hiện như sau:
- Kiểm tra đúng giá trị user trong cột User, click nút “Change Password”.
- Bạn sử dụng giá trị hoặc cũng có thể tạo password mới. Sau đó cập nhật DB_PASSWORD trong file wp-config.php với password mới.
- Nhấn “Change Password”.
Sau đó, refresh lại trang để kiểm tra lỗi đã được fix hay chưa. Nếu vẫn còn lỗi, bạn tiếp tục thực hiện cách sau.
Bước 3: Vô hiệu WordPress plugins
Nếu 2 bước trên không thành công thì bạn nên kiểm tra plugins. Hãy thử vô hiệu tất cả các plugin, nếu thấy website hoạt động bình thường thì có thể lỗi phát sinh do một trong các plugin này. Cách vô hiệu plugin.
- Đăng nhập vào tài khoản quản trị.
- Truy cập vào WordPress core files, tìm thư mục wp-content, sau đó, tìm tiếp thư mục có tên plugins.
- Đổi tên thư mục thành một tên bất kỳ. Điều này giúp WordPress xem đây không còn là plugin nữa.
- Kiểm tra lại website xem lỗi error establishing a database connection WordPress còn không.
Nếu website hoạt động bình thường thì tiếp đến bạn tìm chính xác plugin gây lỗi. Cách thực hiện:
- Đổi tên folder plugins.
- Đổi tên từng thư mục để WordPress không load chúng nữa.
- Kiểm tra website lại xem lỗi đã fix hay chưa.
Trong trường hợp, sau khi đã vô hiệu tất cả các plugins mà trang web vẫn chưa truy cập được thì bạn thực hiện tiếp bước 4.
>>Tham khảo : Cách sửa lỗi DNS Server isn't responding (ĐẦY ĐỦ, CHI TIẾT) hiệu quả 100%
Bước 4: Thay đổi WordPress Core Files
Trước khi thực hiện bước này, bạn cần backup toàn bộ website để tránh bị mất dữ liệu.
Một số file bị nhiễm độc, hoặc bị tình trạng corrupted cũng sẽ ngăn WordPress hoạt động, thậm chí là gây ra lỗi kết nối dữ liệu. Trong trường hợp này, bạn thay thế file hiện tại bằng các file mới và chưa bị WordPress core files chỉnh sửa. Cách thực hiện:
- Tại phiên bản WordPress mới nhất rồi giải nén thành thư mục.
- Truy cập FTP, đổi tên 2 thư mục wp-includes và wp-admin hoặc có thể xóa chúng khỏi server.
- Tải 2 thư mục này từ WordPress core files lên tài khoản hosting.
Bước 5: Liên hệ công ty hosting
Nếu thực hiện 4 bước trên mà vẫn chưa sửa lỗi error establishing a database connection thì có thể lỗi do nhà cung cấp hosting. Vì thế, lúc này, bạn hãy liên hệ họ để được khắc phục lỗi.
Trên đây là các bước để khắc phục error establishing a database connection WordPress do database bị hỏng hoặc thông tin kết nối tới database trong file wp-config.php bị sai. Trong trường hợp đã thử các cách này mà vẫn không thể fix lỗi, bạn hãy \ liên hệ với bộ phận hỗ trợ kỹ thuật của đơn vị hosting.