Làm thế nào để sửa lỗi Error establishing a database connection
access_time
hourglass_empty
person_outline

Làm thế nào để sửa lỗi Error establishing a database connection

Website WordPress của bạn đang gặp lỗi “Error establishing a database connection”? Đừng lo – lỗi này rất thông dụng.

Nói một cách dễ hiểu là thông báo lỗi này đơn thuần cho biết website của bạn thất bại trong việc xử lý các thông tin đầu vào nên không dựng trang web được.

WordPress được viết bằng ngôn ngữ PHP và MySQL làm database. Khi khách truy cập trên website của bạn, PHP code sẽ truy xuất database MySQL và lấy thông tin cần thiết để chạy trang. Nếu thất bại hoặc thông tin không đúng, WordPress sẽ hiện lỗi này lên.

Database là phần mềm được dùng để sắp xếp, lưu trữ, và trích xuất dữ liệu vào phần mềm khác. Vì WordPress là một CMS, nó dùng database để chứa tất cả nội dung của WordPress site. Vì vậy, khi người dùng kết nối tới website, website đó kết nối tới database.

Lỗi kết nối sẽ dẫn đến không chỉ site không truy cập được mà bạn còn mất traffic người dùng. Nó ảnh hưởng xấu đến danh tiếng của website bạn.

Giờ bạn đã sẵn sàng tìm hiểu cách sửa lỗi WordPress này chưa? Ý nghĩa của nó là gì và điều gì gây lỗi.

Nhận giảm giá TỚI 82% cho gói WordPress hosting.

Nhận ưu đãi WordPress Hosting

Làm thế nào để sửa lỗi WordPress “Error Establishing a Database Connection”?

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 bcakup của dữ liệu trước. Bạn có thể tham khảo hướng dẫn tại đây.

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:

edit wp-config trong file manager

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)

tìm DB_NAME, DB_PASSWORD, và DB_HOST trong file wp-config.php trên file manager

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 .

database MySQL và 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_HOSTlocalhost, 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.

fix error establishing a database connection bằng table prefix

Nếu vẫn còn gặp lỗi MySQL database connection, hãy thử bước tiếp theo.

Nhận GIẢM GIÁ 82% cho WordPress hosting plan.

Nhận Giảm Giá WordPress

Kiểm tra login credential databasa trong cPanel

cPanel MySQL Databases đặt trong phần Databases .

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_NAMEDB_USER trong file wp-config.php.

Khớp giá trị giữa file wp-config.php với thông tin thật sự trong màn hình Current Databases .

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

Start with 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.

This database has no user added.

Để sửa lỗi này, chúng tôi đã dùng mục Add User To Database ở cuối trang:

Quản lý người dùng và phân quyền

  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.

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ị 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.

kiểm tra wordpress db prefix để fix error establishing a database connection

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.

vị trí file wp-config

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:

thêm code để sửa database WordPress

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).

Chọn bất kỳ lựa chọn nào để thực hiện database repair.

Bạn có thể thấy hình trên có 2 lựa chọn Repair 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.

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.
    vô hiệu plugin WordPress
  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.

Kích hoạt plugin từng cái một

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

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 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.

vào phpMyAdmin trong Hostinger để kiểm tra 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.

Cách 6: Tạo mới database

Nếu tất cả các cách trên không làm được, database của bạn có thể đã bị hỏng và không dùng được nữa.

Trong trường hợp đó, bạn có thể tạo mới MySQL database và user. Để làm vậy, chuyển lên trang MySQL Databases và nhập thông tin database mới vào.

tạo mới MySQL database để sửa lỗi error establishing database connection

Sau khi MySQL database được tạo, import bản database backup để bạn không phải làm mới từ đầu.

Những phương pháp khác

Nếu tất cả đều không giúp ích gì được, bạn cũng có thể thử vài bước sau. Một số người nói nó sửa được lỗi WordPress error establishing a database connection.

  1. Update WordPress – Chuyển tới dashboard và truy cập phpMyAdmin > database WordPress. Nhấn vào SQL database menu và dán dòng code sau vào:
    UPDATE wp_options SET option_value='YOUR_SITE_URL' WHERE option_name='siteurl'
  2. Nhờ trợ giúp – Hãy liên hệ với công ty web hosting bạn đang dùng hoặc đội trợ giúp của họ. Họ sẽ có thể kiểm tra kỹ hơn và troubleshoot vấn đề kết nối bạn có. Họ cũng có thể sửa lỗi ngay cho bạn hoặc chỉ bạn cách sửa lỗi.
  3. Khởi động lại web server – Những ai đang dùng server riêng, server local hay VPS (máy chủ ảo riêng) cũng có thể thử reboot server. Nó sẽ khởi động lại web server và database server và có khả năng sửa lỗi nếu có.
  4. Khôi phục bản backup mới nhất – Cách này làm được nếu như bạn không ngại mất ít dữ liệu từ lần backup cuối. Hãy xem backup trên máy tính của bạn và trên web host bản nào mới hơn và tiến hành khôi phục bản mới nhất. Nhiều nhà cung cấp web host có tính năng backup hằng ngày nên bạn sẽ không mất quá nhiều dữ liệu.

Điều gì gây ra lỗi này?

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 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ũ.
  • Corrupted database — có thể là lỗi gây ra do bị hack, plugin lỗi, hoặc theme lỗi làm hỏng database.
  • Traffic spike — việc traffic tăng đột ngột có thể gây lỗi cho server database khiến nó không hoạt động.
  • Database server bị sập – đôi khi webserver chứa website files của bạn bị down vì các lý do khác nhau

Trước khi làm gì để sửa lỗi, hãy kiểm tra xem lỗi establishing a database connection có hiện trên trang quản trị WordPress admin hay không.

Lỗi error establishing a database connection trên WordPress admin area sẽ trông như sau:

error establishing a database connection trên admin dashboard

Nếu lỗi, khả năng lớn là do thông tin login database sai. Tuy nhiên, nếu lỗi khác hiện lên, vậy thì do lỗi corrupted database hoặc traffic spike.

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.

Lời kết

Lỗi “Error Establishing a Database Connection” có thể rất đáng ghét. Wesbite của bạn không tải được, rủi ro mất traffic và khách hàng tăng lên từng giây.

Lỗi này xảy ra khi website của bạn thất bại khi thực hiện kết nối và lấy thông tin từ database. Nó bị gây ra bởi nhiều nguyên do, như thông tin kết nối database sai trong file wp-config.php, WordPress theme hoặc WordPress plugin xung đột, hoặc do quá tải đột ngột.

Hãy thử các cách sau để sửa lỗi:

  • Sửa thông tin đăng nhập — đảm bảo là thông tin đăng nhập vào database và thông tin đăng nhập trong wp-config.php khớp nhau.
  • Repair Database — nếu database bị hỏng, sửa nó bằng cách thêm dòng define(‘WP_ALLOW_REPAIR’, true); vào trong file wp-config.php.
  • Fix the Corrupted Files — vô hiệu theme hoặc plugin qua WordPress dashbaord, hoặc đổi tên thư mục từ control panel
  • Tạo mới database — làm lại từ đầu với MySQL database mới và nhập backup database vào trong database đó.

Dường như lỗi WordPress error establishing a database connection không đáng sợ như bạn nghĩ, phải không? Chỉ cần làm theo các cách trong bài viết này, bạn sẽ sửa được lỗi nhanh thôi! Hãy để lại bình luận nếu bạn đang gặp lỗi kết nối database này nhé.

Tác giả

Author

Hai G. / @hghaigiang

Hải G. là chuyên gia quản lý, vận hành các dịch vụ website. Anh có nhiều năm kinh nghiệm về VPS, Hosting, technical SEO, CMS. Đặc biệt yêu thích WordPress và đã dùng nó hơn 5 năm nay. Sở thích của anh là đọc, viết blog, đi du lịch và tư vấn cho các bạn trẻ khởi nghiệp.

Trả lời

Bình luận*

Tên*

Email*

Website này sử dụng Akismet để hạn chế spam. Tìm hiểu bình luận của bạn được duyệt như thế nào.

Gia nhập Hostinger ngay hôm nay!