Error Establishing a Database Connection

Cách sửa lỗi “Error Establishing a Database Connection” trên wordpress

Sửa lỗi wordpress

Sử dụng wordpress nhiều năm thì lỗi Error establishing a database connection là một trong những mã lỗi phổ biến nhất trong mọi trường hợp. Nếu bạn chưa biết thì có đến mấy cách khắc phục lỗi này nên bài viết này sẽ giải thích tỉ mỉ cho các bạn hiểu nguyên nhân gây ra lỗi và các cách khắc phục.

Lỗi “Error Establishing a Database Connection” là gì?

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.

WordPress cần các thông tin sau để kết nối với cơ sở dữ liệu:

  • Database name
  • Database username
  • Database password
  • Database server

Thông tin này được lưu trữ trong tệp cấu hình WordPress của bạn được gọi là wp-config.php.

Nếu bất kỳ mục nào trong số này không chính xác, WordPress sẽ không kết nối được với máy chủ cơ sở dữ liệu của bạn và bạn sẽ thấy lỗi ‘Lỗi thiết lập kết nối cơ sở dữ liệu’.

Đây là một trong những lỗi WordPress phổ biến nhất. Ngoài thông tin đăng nhập không chính xác, lỗi này cũng có thể xuất hiện nếu máy chủ cơ sở dữ liệu bị hỏng hoặc các tệp cơ sở dữ liệu bị hỏng.

Quảng cáo

Chúng ta hãy xem cách khắc phục lỗi thiết lập sự cố kết nối cơ sở dữ liệu trong WordPress với từng bước khắc phục sự cố.

Vì sao trang web bị lỗi Error Establishing a Database Connection

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.

Quảng cáo

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.

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:

 

Quảng cáo

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)

db-name-user-password-2048x1026

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

Quảng cáo

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.

Quảng cáo

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.

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_NAME và DB_USER trong file wp-config.php.

cpanel-current-databases-match

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.

Quảng cáo

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ảng cáo

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.

Quảng cáo

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.

Quảng cáo

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.

Quảng cáo

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-contentBạ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?

Quảng cáo

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.

Quảng cáo

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

Quảng cáo

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.

Quảng cáo

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

Quảng cáo
  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.

Nguồn : Hostinger.vn

Xem thêm
Quảng cáo

Trả lời

Email của bạn sẽ không được hiển thị công khai.