Vừa qua mình gặp một lỗi đối với website TanHongIT.Net này là lỗi “Error establishing a database connection“. Nó đã làm cho khách không thể truy cập vào và xem nội dung trên website của mình.
Và qua bài viết của hostinger.vn đã viết rất chi tiết và đầy đủ về cách giải quyết lỗi này và đã giúp mình sửa thành công lỗi. Mình xin được phép chia sẻ đến cho các bạn thông qua bài viết của hostinger.vn nhé!
Giới thiệu – Error establishing a database connection
Trong bài hướng dẫn này, mình sẽ đưa ra nhiều phương pháp để sửa loại Error establishing a database connection trong WordPress. Sau khi đọc xong, bạn sẽ biết hết tất cả nguyên nhân gây lỗi và cách sửa lỗi WordPress này hoàn toàn.
WordPress được viết bằng ngôn ngữ PHP và MySQL. Khi một trang web được mở khi khách truy cập trên website của bạn, mã PHP code sẽ truy xuất database MySQL và lấy thông tin cần thiết để chạy trang. Một truy vấn PHP cần để viết tiêu đề bài viết, một cái khác cần lấy thông tin tác giả, một cái khác để trích ngày xuất bản, vâng vâng.
Mã lỗi Error establishing a database connection, có nghĩa là vì lý do nào đó mà PHP code không thể kết nối tới MySQL database để lấy thông tin cần để dựng trang.
Có nhiều lý do website có thể gặp lỗi kết nối database trên WordPress, nhưng thông thường sẽ rơi vào ba trường hợp:
- Sai thông tin đăng nhập vào MySQL database của WordPress. Nếu thông tin đăng nhập bị thay đổi do WordPress được chuyển đi, hoặc chuyển qua nhà cung cấp hosting khác, website của bạn sẽ không truy cập được tới database với thông tin cũ. Bạn cũng cần lưu ý là Databse WordPress sử dụng thông tin đăng nhập khác với tài khoản đã được cấp để truy cập hosting account control panel. Theo kinh nghiệm của chúng tôi, lỗi này thường xảy ra nhất.
- Một hoặc nhiều plugin khiến database bị hỏng. Có nhiều lý do khiến WordPress database bị hỏng, hầu hết là do bạn đã upload plugin chứa lỗi.
- Server chứa database này bị sập. Database server có thể không hoạt động vì vấn đề kỹ thuật, hoặc bạn có thể gặp trường hợp traffic tăng đột biết khiến bất thình lình server không thể xử lý được. Vì vậy, website sẽ trả về lỗi error establishing a database connection WordPress
Trong bài hướng dẫn này, bạn sẽ biết cách tìm và sửa lỗi establishing a database connection trong WordPress.
Bạn cần chuẩn bị gì?
Trước khi bắt đầu bạn cần chuẩn bị:
- Một WordPress website dã từng hoạt động
- Truy cập control panel của tài khoản Hosting nơi wordpress được cài.
- Quyền write vào file cài đặt WordPress website
- Kiến thức cơ bản về cấu trúc WordPress
Bước 1 — Xác định lỗi Error establishing a database connection do đâu
Đầu tiên bạn nên làm là kiểm tra lỗi giống nhau ở cả front-end và back-end là yoursite.com, và yoursite.com/wp-admin (thay yoursite.com với trang WordPress của bạn). Nếu lỗi giống nhau là Error establishing a database connection, hãy tiếp tục vào Bước 2.
Nhưng nếu website của bạn bị down, và bạn thấy một lỗi khác khi đăng nhập là: One or more database tables are unavailable. The database may need to be repaired, vậy bạn cần sửa database của bạn.
May mắn là WordPress có cách tự động repair database. Bạn có thể cần kích hoạt tính năng này trước. Để làm vậy, bạn cần truy cập vào file wp-config.php file trong thư mục gốc của files cài WordPress.
Mở file wp-config.php, thêm dòng sau vào trước * That's all, stop editing! Happy blogging. */
và lưu thay đổi:
define( 'WP_ALLOW_REPAIR', true );
Lưu thay đổi. Dòng trên sẽ kích hoạt nó cho bạn và tối ưu hoặc sửa chữa database bằng cách truy cập tới:
yourwebsite.com/wp-admin/maint/repair.php (chỉ cần thay thế yourwebsite.com thành địa chỉ URL thật sự).
Bạn có thể thấy hình trên có 2 lựa chọn để sửa hoặc sửa chửa (Repair Database) và vừa sửa chữa vừa tối ưu database (Repair and Optimize Database). Hãy chọn 1 trong 2; lưu ý là cách 2 sẽ mất nhiều thời gian hơn vì sau khi sửa chữa database sẽ được tối ưu.
Hãy lưu ý là trang sửa chữa database này không an toàn; bất kỳ ai cũng có thể truy cập yourwebsite.com/wp-admin/maint/repair.php mà không phải đăng nhập. Khi bạn đã sửa xong database của bạn, hãy chắc là bạn đã xóa dòng code mà bạn đã thêm
define( 'WP_ALLOW_REPAIR', true );
trong wp-config.php . Việc này sẽ tắt trang sửa lỗi và ngăn chặn bất kỳ ai có ý đồ xấu với database của bạn.
Hãy vẫn để wp-config mở, trừ khi bạn thấy lỗi đã được sửa và website hoạt động trở lại. Nếu bạn vẫn thấy thông báo Error establishing a database connection, bạn cần dùng nó cho bước tiếp theo.
Bước 2 — Kiểm tra cài đặt kết nối database trong wp-config.php
Nếu bước trên không hoạt động và không sử dụng được, vậy bước tiếp bạn nên làm là xem lại cấu hình kết nối bạn đã đặt trong file wp-config.php.
Trong trường hợp bạn không biết chắc vì sao thông tin đăng nhập tự dưng ngừng hoạt động, hãy lưu ý là những việc làm như chuyển công ty hosting hoặc thay đổi bất kỳ thứ gì trong database hoặc thông tin user có thể gây lỗi nếu file wp-config.php chưa được cập nhật với thông tin mới.
File wp-config.php có thể vẫn đang mở ở bước trước. Nếu không, đăng nhập vào File Manager của control panel hosting của bạn hoặc qua FTP và mở file. Bạn sẽ thấy chỗ cấu hình kết nối tới database tương tự giống như sau:
// ** MySQL settings - You can get this info from your web host ** //
|
Ngoài ra, nếu cuộn xuống một chút nữa, bạn sẽ thấy thông tin Prefix:
$table_prefix = 'wp_';
Như bạn có thể thấy, có 4 thông tin quan trọng mà WordPress cần dùng để truy cập database:
- Tên database (DB_NAME)
- Username đăng nhập (DB_USER)
- Mật khẩu đăng nhập (DB_PASSWORD)
- Datbase hostname (DB_HOST)
- Database prefix (table_prefix)
Nếu có bấ kỳ giá trị nào trong số chúng không đúng, WordPress sẽ không thể kết nối tới database của bạn. Và bạn sẽ gặp lỗi Error establishing a database connection
Cách xác định các thông tin trên là đúng là bạn phải kiểm tra lại thông tin MySQL database thực sự. Để làm việc này bạn truy cập section MySQL Databases. Bên dưới là hướng dẫn kiểm tra MySQL database trên control panel của Hostinger và MySQL Database trong cPanel, phần này cũng giống với các nền tảng control panel cho hosting khác.
Hostinger control panel
Sau khi vào trong MySQL Databases, tìm mục List of Current MySQL Databases And Users. Nó sẽ liệt kê tất cả database và users đang được dùng cho website. Thông tin bạn cần tìm và đối chiếu nằm ở cột MySQL Database, MySQL User vàMySQL Host. 3 thông tin của 3 cột này DB_NAME, DB_USER và DB_HOSTphải khớp với thông tin trong wp-config.php file.
Nếu thông tin khác nhau, cập nhật file wp-config.php để cho giống giá trị và lưu lại thay đổi.
Tải lại trang WordPress website của bạn. Nếu bạn vẫn còn gặp lỗi kết nối database, vậy thì có thể là 1 trong 2 thông tin còn lại là MySQL user password không khớp với giá trị trong wp-config.php. Để chắc là MySQL userpassword giống nhau, bạn chỉ cần đặt lại mật khẩu MySQL user bằng cách nhấn vào dấu + kế bên MySQL database và chọn nút Change Password.
Giờ hãy cập nhật wp-config.php với mật khẩu mới bạn vừa đổi và tải lại trang WordPress site.
Nếu vẫn còn lỗi database connection, vậy bạn hãy kiểm tra thêm thông tin table prefix. Bạn có thể kiểm tra lại thông tin này bằng cách chuyển tới phpMyadmin trong MySQL databases để mở WordPress database của bạn. Tìm table prefix trong đó và hãy chắc là table prefix giống với giá trị tương ứng trong file wp-config.php.
Nếu vẫn còn gặp lỗi MySQL database connection, hãy làm thêm bước 3.
cPanel
Khi đã mở MySQL Databases, tìm mục Current Databases. Nó sẽ liệt kê tất cả databases và users đã được sử dụng cho website cua bạn. Thông tin mà chúng ta đang tìm kiếm là Database và Privileged Users. Mục đích là hãy đảm bảo giá trị trong 2 cột này khớp với DB_NAME và DB_USER trong file wp-config.php.
Mỗi khi thực hiện thay đổi, nhớ refresh trang để xem sửa lỗi được Error establishing a database connection chưa vì có thể bạn không cần làm hết tất cả các bước thì lỗ đã được sửa rồi.
Kiểm tra giá trị database name
Chúng ta bắt đầu với database name value. Nếu mục Current Databases không liệt kê database trong file wp-config.php giống với giá trị DB_NAME, database đang bị thiếu. Việc này xảy ra khi một website chuyển tới nhà cung cấp hosting mới và database chưa được chuyển hoàn toàn. Chúng tôi khuyên bạn liên hệ của nhà cung cấp hosting mới và nhờ họ hoàn tất chuyển /khôi phục database WordPress. Việc này sẽ bao gồ việc tạo database mới và có thể khôi phục bằng database backup của WordPress.
Kiểm tra thông tin database user
Bước 2 chúng ta cần kiểm tra cột Privileged Users. Trong ví dụ này, bạn có thể nhanh chóng nhận ra Privileged Users có thông tin không giống với file wp-config.php file – trong file wp-config, thông tin bị thiếu số 0. Khi chúng tôi cập nhật giá trị DB_USER từ somuvnet_wp67 thành somuvnet_wp670, chúng tôi đã sửa được lỗi sai username. Hãy thử tải lại trang để xem lỗi còn tồn tại hay không.
Thêm priviledged user bị thiếu
Tuy nhiên, trong quá trình chuyển WordPress tới nhà cung cấp khác hoặc khi cài WordPress thủ công, bạn có thể quên thêm user vào database. Kết quả là Privileged Users bị trống như hình bên dưới.
Để sửa lỗi này, chúng tôi đã dùng mục Add User To Database ở cuối trang:
- Đầu tiên xem Current Users có giống với giá trị DB_USER value trong wp-config.php được liệt kê ở đây không.
- Nếu nó được liệt kê, chúng ta sẽ dùng user đó trong phần Add User To Database->User, chọn database tương ứng trong danh sách và nhấn nút Add. Bạn sẽ phải định nghĩa quyền, chọn All Privileges, click vào Make Changes và quay lại bằng nút Go Back.
- Nếu không được liệt kê, chúng ta sẽ sử dụng phần Add New User để tạo thêm MySQL username. Tại đây bạn điền username hoặc phần còn thiếu vào trường Username và chúng tôi khuyên sử dụng Password generator để tạo Pasword.
QUAN TRỌNG: bạn nên cập nhật giá trị DB_PASSWORD trong file wp-config.php ngay để nó không bị mất trong quá trình thao tác.
Khi user đã được thêm (hoặc được tạo), bạn sẽ cần thực hiện lại bước (2) để thêm nó vào database. Khi làm xong hãy tải lại trang để xem lỗi đã được sửa chưa.
Kiểm tra giá trị host
Nếu cả 2 bước trên vẫn không sửa được, có 2 thông tin còn lại cần phải kiểm tra. Là giá trị host và password. Hãy bắt đầu với giá trị host, giá trị host thường đi kèm với thông tin tài khoản. Chúng tôi khuyên kiểm tra lại thông tin này với nhà cung cấp hosting của bạn nếu không tìm thấy trong email được gửi tới cho bạn từ trước về thông itn tài khoản. Nếu bạn đã đổi MySQL database host, hãy tải lại trang và xem lỗi Error establishing a database connection đã được sửa chưa.
Kiểm tra thông tin mật khẩu đăng nhập
Mật khẩu đăng nhập có thể được tìm thấy trong mục MySQL Databases->Current Users trong control panel.
- Xác định đúng user trong cột Users và click vào nút Change Password .
- Tại đây bạn có thể sử dụng giá trị
hoặc tạo password mới bằng tool Password Generator. Hãy cập nhật giá trị DB_PASSWORD trong wp-config.php file với password mới.
- Nhấn Change Password
Đó là tất cả các bước kiểm tra cho file wp-config.php. Hãy tải lại trang để xem lỗi được sửa chưa. Nếu lỗi vẫn chưa được sửa hãy làm bước cuối cùng.
Kiểm tra giá trị table prefix value
Cuối cùng, nhưng không kém phần quan, trọng, hãy chắc là table prefix cũng đúng. Mở database WordPress bằng phpMyAdmin và xem giá trị nó có khớp với table prefix trong file wp-config.php không.
Bước 3 — Vô hiệu WordPress plugins
Nếu cả 2 bước trên không thành công, đã đến lúc kiểm tra WordPress plugins của bạn. Nếu vô hiệu toàn bộ plugins cùng lúc, website hoạt động lại thì khả năng lớn là ít nhất 1 trong các plugin là nguồn gốc của lỗi này. Sau đó bạn có thể tiếp tục kiểm tra xem chính xác plugin nào gây lỗi. Các bước sau sẽ giúp bạn vô hiệu toàn bộ plugin WordPress để sửa “error establishing a database connection”:
- Đăng nhập vào tài khoản bằng file manager hoặc FTP client
- Truy cập vào WordPress core files, và tìm thư mục wp-content. Truy cập. Tìm thư mục có tên plugins.
- Đổi tên thư mục đó thành tên khác bất kỳ như là plugins-disabled. Nó sẽ ngăn không cho WordPress coi đây là thư mục plugin nữa.
- Kiểm tra website của bạn để xem error establishing a database connection có biến mất chưa.
Nếu chưa, hãy làm theo bước 4. Nếu rồi, vấn đề nằm ở trong 1 trong các plugin WordPres. Giờ, để tìm chính xác plugin gây lỗi, bạn chỉ cần làm như sau:
- Đổi tên plugins folder thành plugins và truy cập vào nó.
- Đổi tên từng thư mục tuần tự, để WordPress không load plugin đó. Bạn có thể đặt tên nó thành ví dụ như akismet-disabled, và tiếp tục.
- Kiểm tra website của bạn mỗi lần bạn vô hiệu một plugin để xem nó có sửa được lỗi hay không.
Tuy nhiên, , if this didn’t bring your website back to normal, move onto the next step.
Bước 4 — Thay đổi WordPress Core Files
QUAN TRỌNG: Hãy tạo full backup cho website trước khi tiến hành bước này. Bạn có thể backup website như hướng dẫn này.
Nếu error establishing a database connection WordPress vẫn còn, cách cuối cùng là phương pháp “bạo lực” nhất: thay thế WordPress core files. Vì có thể file bị nhiễm độc, hoặc bị corrupted sẽ ngăn WordPress hoạt động hoặc có lỗi khi cố kết nối tới database. Trong trường hợp này, bạn có thể thay thế những file này bằng những file mới, chưa bị chỉnh sửa của WordPress core files. Đừng lo, cuối cùng sẽ ổn sau bước này. Bạn chỉ cần chắc là chỉ dùng cách này khi bạn không còn cách nào khác, và các phương pháp trên đã được thực hành.
Để thay đổi core WordPress files hãy làm theo các bước sau:
- Để thay đổi WordPress core files thủ công, tải phiên bản mới nhất của WordPress và giải nén thành thư mục
- Truy cập FTP, xóa hoặc đổi tên thư mục wp-includes và wp-admin khỏi server.
- Tải 2 thư mục này từ (1) lên tài khoản hosting.
Vậy là bạn đã đổi core files của WordPress. Để biết thêm thông tin về core file WordPress, hãy xem qua bài hướng dẫn này. Cách này sẽ sửa lỗi ‘Error establishing a database connection’ bạn đang gặp phải.
Bước 5 — Liên hệ công ty hosting của bạn
Nếu bạn đã làm các bước trên mà vẫn gặp lỗi, bạn vẫn còn thấy Error establishing a database connection, có nghĩa lỗi do nhà cung cấp hosting. Hãy liên hệ nhà cung cấp dịch vụ web hosting của bạn và cho họ các thông tin cần thiết để tái hiện lỗi, họ có thể xác định nguyên nhân gây lỗi.
Nhưng trước khi liên hệ tới nhà cung cấp hosting, có một cách để bạn tìm hiểu lý do về lỗi Error establishing a database connection. Đôi khi, database bị offline bởi nhà cung cấp hosting của bạn.
Có nhiều nguyên do gây ra lỗi này, nhưng không phải hiếm gặp. Nếu đúng vậy, bạn có thể thêm thông tin cho nhà cung cấp hosting của bạn để xử lý vấn đề nhanh hơn.
Để kiểm tra xem database server có bị down hay không , bạn có thể truy cập vào phpMyAdmin trong mụ MySQL hoặc chạy một script PHP kết nối đơn giản. Script này để thực hiện một kết nối tới database. Không truy cập được phpMyAdmin hoặc script kết nối báo lỗi kết nối thất bại sẽ cho chúng ta biết server down. Chúng tôi đã viết cho bạn script như sau:
<?php
|
Như bạn thấy, thông tin bạn cần là server name của bạn (thường được cấp bởi nhà cung cấp hosting), tên database bạn cố truy cập tới, MySQL username và mật khẩu. Chúng tôi đã đề cập vấn đề này ở bài hướng dẫn kết nối MySQL database bằng PHP. Không cần phải nói, bạn cần kiểm tra chính xác giá trị trong thông tin MySQL có khớp nhau không như ở Bước 2.
Chúng tôi cũng đã tạo một biến $conn, để lưu kết quả trả lời trong phương pháp mysqli_connect(). Nếu biến này trống, chúng ta sẽ thấy thông báo Connection failed: <error_name>. Ở mặt khác, kết nối thành công vào database sẽ trả về kết quả Connected successfully hiển thị trên màn hình.
Script này sẽ giúp bạn biết database có bị offline hay không, nhà cung cấp web hosting của bạn có thể cần biết thông tin này.
Bài hướng dẫn WordPress này có thể giúp bạn sửa lỗi The Error establishing a database connection đang hiện lên trên WordPress. Bằng các bước phù hợp bạn sẽ có thể sửa lỗi nếu lỗi do database bị hỏng hoặc sai thông tin kết nối database trong file wp-config.php. Ngoài ra có thể có lỗi do nhà cung cấp hosting mà chỉ có họ mới sửa được nhưng 90% lỗi nằm ở các vấn đề trên, hãy áp dụng cách sửa trên trước khi liên hệ đội hỗ trợ kỹ thuật.
CHÚC CÁC BẠN THÀNH CÔNG
Leave a Reply