Hướng dẫn sửa lỗi "error establishing a database connection" trên website WordPress
Lỗi “error establishing a database connection” có lẽ là một trong những lỗi phổ biến nhất và đáng sợ trên website WordPress. Thường lỗi này sẽ đi kèm với lỗi trắng màn hình (WSOD). Lỗi này có nghĩa là trang web của bạn không thể kết nối hoặc có quyền truy cập vào cơ sở dữ liệu WordPress của bạn và do đó toàn bộ trang web của bạn không thể hoạt động. Lỗi này không nên xem nhẹ bởi điều này sẽ khiến bạn mất kha khá người truy cập vào website.
Nhưng đừng lo lắng, hôm nay chúng ta sẽ thảo luận về một số tình huống phổ biến gây ra lỗi error establishing a database connection và một số cách dễ dàng để khắc phục lỗi này
1. Lỗi error establishing a database connection là gì?
Tất cả thông tin trên trang web WordPress của bạn, chẳng hạn như bài đăng, trang, meta, cài đặt plugin, thông tin đăng nhập, v.v ... đều được lưu trữ trong cơ sở dữ liệu MySQL của bạn. Dữ liệu duy nhất không được lưu trữ ở đó là nội dung đa phương tiện như hình ảnh và các tệp chủ đề / plugin / core của bạn như index.php, wp-login.php, v.v. Khi ai đó truy cập trang web của bạn, PHP sẽ thực thi mã trên trang và truy vấn thông tin từ cơ sở dữ liệu, sau đó hiển thị nó cho khách truy cập trong trình duyệt của họ.
Nếu vì một lý do nào đó, điều này không hoạt động đúng, bạn sẽ gặp phải lỗi establishing a database connection. Toàn bộ trang trống vì không có dữ liệu nào có thể được truy xuất để hiển thị trang vì kết nối không hoạt động đúng. Điều này không chỉ phá vỡ giao diện trang web của bạn mà còn ngăn bạn truy cập bảng điều khiển WordPress của bạn .
Tuy nhiên, khách truy cập có thể không thấy lỗi này trên frontend ngay lập tức. Đó là bởi vì trang web của bạn rất có thể vẫn đang phục vụ từ bộ nhớ cache cho đến khi hết hạn. Do đó, nếu một trang web vẫn đang phục vụ từ bộ đệm, nó có thể xuất hiện tốt đối với khách truy cập.

Khi khách truy cập cố gắng truy cập trang web của bạn trong khi lỗi này xảy ra, nó sẽ tạo ra mã trạng thái 500 HTTP trong nhật ký của bạn. Mã trạng thái tương tự này xuất hiện khi có lỗi “internal server error”. Về cơ bản, điều đó có nghĩa là đã xảy ra sự cố trên máy chủ và tài nguyên được yêu cầu không được cung cấp. Khi mọi thứ hoạt động bình thường, trang web của bạn sẽ tạo mã trạng thái 200 HTTP, điều đó có nghĩa là mọi thứ đều ổn.
Các tình huống phổ biến gây ra lỗi này?
Vậy tại sao chính xác điều này xảy ra? Vâng, đây là một vài lý do phổ biến dưới đây. Và đừng lo lắng, chúng tôi sẽ đi sâu vào từng vấn đề này để bạn có thể biết cách khắc phục chúng. Thông thường bạn có thể giải quyết lỗi này trong vòng dưới 15 phút.
- Vấn đề phổ biến nhất là thông tin đăng nhập cơ sở dữ liệu của bạn không chính xác. Trang web WordPress của bạn sử dụng thông tin đăng nhập riêng để kết nối với cơ sở dữ liệu MySQL của nó.
- Cơ sở dữ liệu của bạn bị hỏng. Với rất nhiều vấn đề với chủ đề, plugin và người dùng liên tục xóa và cài đặt chúng, đôi khi cơ sở dữ liệu bị hỏng. Điều này có thể là do một bảng bị thiếu hoặc bị hỏng riêng lẻ hoặc có thể một số thông tin đã bị xóa do tai nạn.
- Bạn có thể có các tệp bị hỏng trong cài đặt WordPress của bạn. Điều này thậm chí có thể xảy ra đôi khi do tin tặc.
- Các vấn đề với máy chủ cơ sở dữ liệu của bạn. Một số điều có thể sai ở phần cuối của máy chủ web, chẳng hạn như cơ sở dữ liệu bị quá tải do tăng lưu lượng truy cập hoặc không phản hồi từ quá nhiều kết nối đồng thời. Điều này thực sự khá phổ biến với các shared hosting vì chúng đang sử dụng cùng một tài nguyên cho nhiều người dùng trên cùng một máy chủ.
2. Cách khắc phục lỗi Error Establishing a Database Connection
Trước khi bạn bắt đầu khắc phục lỗi, chúng tôi luôn khuyên bạn nên sao lưu dữ liệu . Rất nhiều hướng dẫn dưới đây liên quan đến cơ sở dữ liệu của bạn. Bạn nên luôn luôn sao lưu trước khi cố gắng sửa chữa mọi thứ trên trang web WordPress của mình cho dù bạn có hiểu biết về công nghệ đến mức nào.
Sau đó, bạn cũng có tùy chọn để khôi phục bản sao lưu để sản xuất hoặc dàn dựng. Hoặc bạn có thể tự sao lưu cơ sở dữ liệu MySQL của mình bằng phpMyAdmin . Khi bạn đã sao lưu thành công, đã đến lúc bắt đầu khắc phục sự cố kết nối cơ sở dữ liệu của bạn.
5 cách khắc phục lỗi Establishing a Database Connection
- Kiểm tra xem thông tin đăng nhập cơ sở dữ liệu của bạn có chính xác không (lý do phổ biến nhất của sự cố).
- Sửa chữa cơ sở dữ liệu bị hỏng với chế độ sửa chữa cơ sở dữ liệu tích hợp của WordPress: define(‘WP_ALLOW_REPAIR’, true).
- Sửa các tệp bị hỏng.
- Liên hệ với nhà cung cấp dịch vụ hosting của bạn để biết các vấn đề liên quan đến máy chủ cơ sở dữ liệu của bạn.
- Khôi phục lại bản sao lưu mới nhất của bạn.
1. Kiểm tra thông tin đăng nhập cơ sở dữ liệu của bạn
Điều đầu tiên cần làm là kiểm tra để đảm bảo thông tin đăng nhập cơ sở dữ liệu của bạn là chính xác. Đây là lý do phổ biến nhất tại sao xảy ra lỗi error establishing a database connection. Đặc biệt ngay sau khi mọi người chuyển sang một nhà cung cấp hosting mới. Các chi tiết kết nối cho trang web WordPress của bạn được lưu trữ trong tệp wp-config.php thường nằm ở thư mục gốc của trang web WordPress của bạn.
Nó chứa bốn mẩu thông tin quan trọng mà tất cả cần phải chính xác để kết nối thành công.
Tên cơ sở dữ liệu
// ** MySQL settings ** //
/** The name of the database for WordPress */
define('DB_NAME', 'xxxxxx');Tên người dùng cơ sở dữ liệu MySQL
/** MySQL database username */
define('DB_USER', 'xxxxxx');Mật khẩu cơ sở dữ liệu MySQL
/** MySQL database password */
define('DB_PASSWORD', 'xxxxxxxxx');Tên máy chủ MySQL (máy chủ)
/** MySQL hostname */
define('DB_HOST', 'localhost');Để truy cập tệp wp-config.php, bạn có thể kết nối với trang web của mình thông qua SFTP và duyệt đến thư mục gốc của trang web. Hoặc nếu bạn đang sử dụng cPanel, bạn có thể nhấp vào Trình quản lý tập tin, Trình duyệt đến thư mục gốc của trang web và nhấp chuột phải để chỉnh sửa tệp.

Dưới đây là một ví dụ dưới đây về hình dạng của tệp khi mở.

Bây giờ bạn cần kiểm tra giá trị hiện tại của mình so với giá trị trên máy chủ của bạn để đảm bảo chúng chính xác.
Kiểm tra thông tin xác thực cơ sở dữ liệu trong cPanel
Điều đầu tiên để kiểm tra là tên cơ sở dữ liệu. Để làm điều này, bạn sẽ cần phải đăng nhập vào phpMyAdmin trong cPanel trong phần Cơ sở dữ liệu.

Ở phía bên trái, bạn sẽ thấy tên cơ sở dữ liệu của bạn ở phía dưới. Bạn có thể bỏ qua cơ sở dữ liệu của information information_schema, vì đây là thứ được sử dụng bởi máy chủ. Sau đó, bạn sẽ muốn so sánh tên đó với giá trị DB_NAME trong tệp wp-config.php của bạn. Nếu chúng khớp, thì đây không phải là vấn đề. Nếu chúng không khớp, thì bạn cần cập nhật tệp wp-config.php của mình .

Bạn cũng có thể xác minh rằng đây là cơ sở dữ liệu chính xác bằng cách đảm bảo rằng nó chứa URL trang web WordPress của bạn. Để thực hiện việc này, chỉ cần nhấp vào cơ sở dữ liệu, sau đó nhấp vào bảng wp_options (cái này có thể được đặt tên hơi khác với mục đích bảo mật, chẳng hạn như wpxx_options). Ở đầu bảng, bạn sẽ thấy các giá trị cho URL và tên trang web của bạn. Nếu những điều này phù hợp với trang web hiện tại của bạn, bạn có thể yên tâm rằng bạn đang ở đúng nơi.

Nếu tên cơ sở dữ liệu của bạn đã chính xác và bạn vẫn gặp lỗi khi thiết lập thông báo kết nối cơ sở dữ liệu thì bạn cũng sẽ muốn kiểm tra tên người dùng và mật khẩu của mình. Để làm điều này, bạn sẽ cần tạo một tệp PHP mới trong thư mục gốc của trang web WordPress của bạn và nhập mã sau đây. Bạn có thể đặt tên cho nó bất cứ điều gì bạn muốn, chẳng hạn như checkdb.php. Chỉ cần thay đổi các giá trị của db_user và db_password với các giá trị trong tệp wp-config.php của bạn.
<?php
$test = mysqli_connect('localhost', 'db_user', 'db_password');
if (!$test) {
die('MySQL Error: ' . mysqli_error());
}
echo 'Database connection is working properly!';
mysqli_close($testConnection);Sau đó duyệt đến tệp trên trang web WordPress của bạn: https://yourdomain.com/checkdb.php. Nếu bạn gặp phải lỗi MySQL “MySQL Error: Access denied”, thì bạn biết tên người dùng hoặc mật khẩu của mình bị sai và bạn sẽ cần tiếp tục bước tiếp theo để đặt lại thông tin đăng nhập.

Dưới đây là thông báo bạn muốn xem, kết nối Cơ sở dữ liệu đang hoạt động bình thường. Hãy chắc chắn xóa / xóa tệp này sau khi bạn hoàn thành kiểm tra.

Vì vậy, tiếp theo bạn cần thiết lập lại tên người dùng và mật khẩu của bạn. Trong cPanel, nhấp vào Cơ sở dữ liệu MySQL trong phần Cơ sở dữ liệu.

Cuộn xuống và tạo một người dùng MySQL mới. Bạn cũng có thể thay đổi mật khẩu trên màn hình này cho người dùng cơ sở dữ liệu hiện tại đã tồn tại.

Sau đó cuộn xuống và thêm người dùng mới của bạn vào cơ sở dữ liệu của bạn. Màn hình tiếp theo sẽ hỏi bạn muốn gán đặc quyền nào, hãy chọn tất cả các đặc quyền.

Sau đó lấy những thông tin mới và cập nhật tệp wp-config.php của bạn. Bạn sẽ muốn cập nhật các giá trị DB_USER và DB_PASSWORD. Bạn cũng có thể chạy lại tệp thử nghiệm từ trước đó. Điều này sau đó sẽ giải quyết vấn đề thông tin của bạn.
Nếu bạn đã làm theo mọi thứ ở trên và vẫn nhận được lỗi khi thiết lập thông báo kết nối cơ sở dữ liệu, thì hãy tiến hành các bước khắc phục sự cố tiếp theo bên dưới.
2. Sửa chữa cơ sở dữ liệu bị hỏng
Trong một số trường hợp, có thể là cơ sở dữ liệu của bạn đã bị hỏng. Điều này đôi khi có thể xảy ra (mặc dù không thường xuyên) vì theo thời gian, hàng trăm bảng liên tục được thêm / xóa bởi các plugin và chủ đề mới. Nếu bạn cố gắng đăng nhập vào bảng điều khiển của trang web WordPress của bạn và nhận được lỗi sau, điều đó có nghĩa là cơ sở dữ liệu của bạn bị hỏng: Một hoặc nhiều bảng cơ sở dữ liệu không có sẵn. Cơ sở dữ liệu có thể cần phải được sửa chữa. Điều quan trọng cần lưu ý là bạn chỉ có thể thấy lỗi này ở mặt sau, trong khi bạn thấy lỗi thiết lập thông báo kết nối cơ sở dữ liệu trên giao diện.
WordPress thực sự có một chế độ sửa chữa cơ sở dữ liệu mà bạn có thể sử dụng. Chỉ cần thêm phần sau vào dưới cùng của tệp wp-config.php của bạn.
define('WP_ALLOW_REPAIR', true);
Sau đó duyệt đến vị trí sau trên trang web WordPress của bạn: https://yourdomain.com/wp-admin/maint/repair.php. Sau đó, bạn sẽ có tùy chọn để sửa chữa cơ sở dữ liệu hoặc sửa chữa và tối ưu hóa cơ sở dữ liệu. Vì hiện tại bạn có thể đang khắc phục sự cố ngừng hoạt động trên trang web của mình, chúng tôi khuyên bạn nên sử dụng tùy chọn cơ sở dữ liệu sửa chữa vì nó nhanh hơn.

Sau khi chạy sửa chữa cơ sở dữ liệu ở trên, hãy đảm bảo rằng bạn xóa dòng mã bạn đã thêm vào tệp wp-config.php, nếu không bất kỳ ai cũng có thể chạy sửa chữa. Nếu bạn đang chạy cPanel, bạn cũng có thể chạy sửa chữa từ trong màn hình cơ sở dữ liệu MySQL.

Hoặc bạn có thể chạy một sửa chữa từ bên trong phpMyAdmin. Chỉ cần đăng nhập vào phpMyAdmin , nhấp vào cơ sở dữ liệu của bạn và chọn tất cả các bảng. Sau đó, từ danh sách thả xuống, nhấp vào bảng Sửa chữa., Điều này về cơ bản chỉ là chạy lệnh REPAIR TABLE .

Và cuối cùng, tùy chọn khác của bạn sẽ là chạy sửa chữa bằng WP-CLI với lệnh sau:
wp db repairNếu bạn vẫn gặp sự cố trên trang web của mình, thì hãy chuyển sang bước khắc phục sự cố tiếp theo.
3. Sửa các tập tin bị hỏng
Lý do có thể tiếp theo mà bạn có thể thấy lỗi khi thiết lập thông báo kết nối cơ sở dữ liệu là các tệp của bạn đã bị hỏng. Cho dù điều này bắt nguồn từ một vấn đề với việc truyền tệp qua FTP, một hacker có quyền truy cập vào trang web của bạn hoặc sự cố với máy chủ của bạn, bạn có thể nhanh chóng khắc phục sự cố này. Tuy nhiên, một lần nữa chúng tôi khuyên bạn nên sao lưu trang web của mình trước khi thử điều này.
Về cơ bản, bạn sẽ thay thế phiên bản cốt lõi của WordPress trên trang web của mình. Bạn không thay đổi plugin, chủ đề hoặc phương tiện của mình, chỉ là bản cài đặt WordPress. Để làm điều này, bạn sẽ cần phải tải xuống một bản sao mới của WordPress từ WordPress.org.

Giải nén tập tin này trên máy tính của bạn. Bên trong, bạn sẽ muốn xóa thư mục wp-content, cũng như tệp wp-config-sample.php.

Sau đó tải các tệp còn lại qua SFTP lên trang web của bạn, ghi đè lên các tệp hiện có của bạn. Điều này sẽ thay thế tất cả các tệp có vấn đề và đảm bảo bạn có những tệp mới sạch và không bị hỏng. Bạn nên xóa bộ nhớ cache của trình duyệt sau khi thực hiện việc này. Sau đó kiểm tra trang web WordPress của bạn để xem lỗi vẫn còn tồn tại.
4. Các vấn đề với máy chủ cơ sở dữ liệu của bạn
Nếu các cách trên không thể giải quyết vấn đề của bạn, thì chúng tôi khuyên bạn nên liên hệ nhà cung cấp dịch vụ hosting vì đó có thể là sự cố với máy chủ cơ sở dữ liệu của bạn. Ví dụ: nếu có quá nhiều kết nối đồng thời đến cơ sở dữ liệu của bạn cùng một lúc, nó có thể tạo ra lỗi. Điều này là do rất nhiều máy chủ lưu trữ có giới hạn trên máy chủ của họ về số lượng kết nối được phép cùng một lúc. Sử dụng một bộ đệm ẩn có thể giúp giảm thiểu các tương tác cơ sở dữ liệu trên trang web của bạn. .
Vấn đề này có thể xảy ra rất nhiều trên các shared hosting vì về mặt lý thuyết có thể ảnh hưởng đến trang web của bạn. Điều này là do các shared hosting sử dụng tất cả các tài nguyên giống nhau trên các máy chủ.
5. Khôi phục backup mới nhất
Và cuối cùng nhưng không kém phần quan trọng, bạn luôn có thể dùng đến một bản backup nếu cần. Trong một số trường hợp, đây có thể là cách nhanh hơn để giải quyết vấn đề nếu bạn không lo lắng về việc mất bất kỳ dữ liệu nào giữa khi lần sao lưu cuối cùng của bạn được thực hiện. iNET luôn lưu giúp người dùng 2 bản backup gần nhất. Hãy nhớ rằng bạn có thể cần khôi phục cả cơ sở dữ liệu và tệp của mình.
3. Tóm lược
Như bạn có thể thấy có khá nhiều cách để khắc phục lỗi thiết lập kết nối cơ sở dữ liệu trong WordPress. Phổ biến nhất là thông tin không hợp lệ trong tệp wp-config.php. Kiểm tra để đảm bảo những điều đó là chính xác là nơi tốt nhất để bắt đầu.
Bạn đã gặp phải lỗi error establishing a database connection trên trang web của mình chưa? Hãy cho chúng tôi ý kiến về cách xử lý của bạn.