Trong quá trình làm việc, hoặc khi lướt web chắc hẳn các bạn đã từng gặp lỗi khi không vào được website và nhận được thông báo “Error Establishing a Database Connection”. Vậy, nguyên nhân do đâu và cách khắc phục như thế nào? Hôm nay S-TECH sẽ hướng dẫn các bạn sửa những lỗi website như thế này nhé!
Sau đây là năm giải pháp thông dụng nhất để sửa lỗi Error Establishing a database connection. Nhưng trước khi thử các cách sửa lỗi này, bạn cần lưu ý tải bản backup của dữ liệu trước.
Tóm tắt các cách nhanh để sửa error conntect database:
1. Kiểm tra thông tin kết nối database
2. “Repair” WordPress Database
3. Vô hiệu WordPress plugins/theme
4. Khôi phục WordPress core file
5. Kiểm tra server database đang hoạt động không
6. Tạo database mới
Cách 1: kiểm tra thông tin kết nối database trong wp-config.php
Một nguyên do thường xuyên nhất khiến cho website gây lỗi error establishing a database connection messages là vì thông tin đăng nhập bị sai. Thường là sau khi di chuyển website tới nhà cung cấp hosting khác, chủ website cập nhật không đúng hoặc chưa đủ thông tin của nhà cung cấp mới. Cách này sẽ giúp bạn sửa nhanh lỗi kết nối database.
Đầu tiên, bạn cần xem lại cấu hình kết nối bạn đã đặt trong file wp-config.php có khớp với thông tin của database không.
Để truy cập được vào file wp-config.php, bạn cần dùng File Manager trong control panel của Hosting hoặc hoặc truy cập qua FTP client như FileZilla.
Nếu bạn dùng File Manager, chuyển tới /public_html/ folder, chuột phải vào file wp-config.php, và chọn Edit:
Tìm đến 5 thông tin liên quan đến database như sau:
1. Tên database (DB_NAME)
2. Username đăng nhập (DB_USER)
3. Mật khẩu đăng nhập (DB_PASSWORD)
4. Datbase hostname (DB_HOST)
5. Database prefix (table_prefix)
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_’;
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 hiện hành của MySQL database. Để làm việc này bạn truy cập section MySQL Databases, chọn database của bạn đang dùng trong phần List of Current MySQL Databases And Users .
Nếu thông tin đăng nhập database trong phần MySQL database khác với trong file wp-config.php. Hãy chỉnh cho khớp trong wp-config.php. Lưu ý là mặc dù hầu hết các nhà cung cấp hosting có DB_HOST là localhost, một số nhà cung cấp hosting dùng địa chỉ IP hoặc URL khác làm hostname. Bạn có thể cần liên hệ với nhà cung cấp web hosting của mình để xác nhận lại thông tin database host đó.
Sửa những dòng sau:
define(‘DB_NAME’, ‘fill_this_with_your_current_database_name’);
define(‘DB_USER’, ‘fill_this_with_your_current_username’);
define(‘DB_HOST’, ‘fill_this_with_your_current_localhost’);
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à DB_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 thử bước tiếp theo.
Kiểm tra login credential databasa trong 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:
1. Đầ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.
2. 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.
3. 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.
4. 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ị hostname
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.
1. Xác định đúng user trong cột Users và click vào nút Change Password .
2. 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.
3. 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.
Cách 2: Repare Database WordPress
Nếu website của bạn bị không tải được, và bạn thấy một lỗi khi đăng nhập là: “One or more database tables are unavailable. The database may need to be repaired”, và ngoài website chính bạn thấy lỗi thông thường là error establishing a database connection.
Trong trường hợp này, WordPress có cách tự động sửa lỗi bằng cách 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 );
Kết quả sẽ như sau:
Lưu thay đổi. Dòng trên sẽ kích hoạt chức năng sửa database cho bạn. Bạn truy cập vào chức năng này 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ỉ domain của bạn).
Bạn có thể thấy hình trên có 2 lựa chọn Repair Database và 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.
Lưu ý là 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.
Cách 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à lý do gây lỗi Error Establishing a Database Connection .
Sau đây là cách vô hiệu toàn bộ plugin WordPress để thử sửa lỗi “error establishing a database connection”:
1. Đăng nhập vào tài khoản bằng File Manager hoặc FTP client
2. Truy cập vào WordPress core files trong public_html, và vào trong thư mục wp-content. Bạn sẽ thấy thư mục có tên plugins.
3. Đổ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.
4. 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 bạn không còn thấy lỗi error establishing connection database trên website, vấn đề nằm ở trong 1 trong các plugin WordPres.
Nhưng làm thế nào để biết chính xác WordPress plugin nào gây lỗi?
Sau khi disable toàn bộ plugin, bạn hãy đặt lại thư mục plugins trở về tên gốc. Bằng cách này, các plugin WordPress sẽ bị đưa về chế độ ngừng hoạt động trong khu vực admin area.
Sau đó, bạn chỉ việc kích hoạt WordPress plugins từng cái một, tải lại site WordPress, cho đến khi bạn thấy lỗi error establishing a database connection hiện ra là bạn biết plugin nào gây lỗi.
Pro Tip: Đừng quên xóa WordPress theme hoặc WordPress plugin gây lỗi
Cách 4: Thay đổi WordPress Core Files
Nếu error establishing a database connection vẫn còn hiện lên website, 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ị hỏng sẽ ngăn WordPress hoạt động 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.
Để dùng core WordPress files gốc thay thế cho core WordPress trên hosting hãy làm theo các bước sau:
1. Tải phiên bản mới nhất của WordPress và giải nén lên máy tính
2. Trên máy tính của bạn, xóa file config.php và thư mục wp-content
3. Truy cập FTP hoặc File Manager, tải những thư mục còn lại trên máy tính bạn lên server.
Vậy là bạn đã khôi phục 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 hầu hết các lỗi ‘Error establishing a database connection’ bạn đang gặp phải.
Cách năm: Kiểm tra Database Server
Nếu bạn đã thử các cách trên nhưng WordPress vẫn hiện lỗi error establishing a database connection, vậy có thể là MySQL server bị sập (down.)
Có nhiều nguyên do gây ra vấn đề này, có thể là traffic lớn trên server. Khi một server host không thể xử lý số lượng lớn người truy cập đồng thời, nó sẽ chậm và đôi khi hiện lỗi establishing a connection error.
Điều này xảy ra khi host của bạn có giới hạn không đủ so với nhu cầu của website bạn. Nếu là vậy, hãy liên hệ với nhà cung cấp web hosting và kiểm tra xem nếu MySQL server còn hoạt động không.
Bạn cũng có thể truy cập vào WordPress dashboard và chọn phpMyAdmin, để kết nối tới database.
Nếu bạn vào được, tức là MySQL server vẫn đang hoạt động. Nếu không, bạn cần liên hệ với nhà cung cấp hosting để hỏi về việc MySQL server bị down.
Giờ còn một bước bạn cần kiểm tra là xem WordPress database user có đủ quyền hạn để thực thi kết nối không.
Cách dễ nhất để kiểm tra việc này là tạo file có tên testconnection.php (hoặc tên gì dễ nhớ cũng được với đuôi file là). Dán dòng code sau vào:
<?php
$link = mysqli_connect(‘localhost’, ‘username’, ‘password’);
if (!$link) {
die(‘Could not connect: ‘ . mysqli_error());
}
echo ‘Connected successfully’;
mysqli_close($link);
?>
Hãy thay thế các username và password đúng thông tin. Upload file lên website và truy cập nó từ trình duyệt.
Nếu kết nối thành công, bạn sẽ thấy dòng “Connected Successfully” trên màn hình. Tức là user có đủ quyền truy cập, và đang có vấn đề khác gây ra lỗi error establishing a database connection.
Nếu website của bạn đang hoạt động trên shared server và traffic bắt đầu tăng, bạn sẽ gặp tìnht rạng quá tải và web bắt đầu hiện lỗi error establishing a database connection. Những plugins như W3 Total Cache, WP Rocket, or WP Super Cache, sẽ giúp ích nhiều cho vấn đề này.
Nguồn: Tổng hợp