Hướng dẫn cách fix lỗi Error establishing a database connection trên WordPress

Kiến thức hosting

Trong khi lướt web có thể bạn có ít nhất đã nhìn thấy lỗi này một vài lần. Lỗi Error establishing a database connection là một trong những lỗi do nhiều nguyên nhân gây ra. Là một người mới bắt đầu sử dụng WordPress, điều này có thể gây ra sự khó chịu đồng thời tạo ra sự lo sợ. Chúng tôi đã gặp sự cố này ngày hôm qua trên trang web của chính mình. Mất hơn 20 phút để phát hiện và khắc phục sự cố. Trong khi thực hiện nghiên cứu để tìm ra nguyên nhân có thể xảy ra, chúng tôi nhận ra chưa có bài viết chi tiết nào về vấn đề này. Trong bài viết này, chúng tôi sẽ chỉ cho bạn cách khắc phục khi gặp lỗi thiết lập kết nối cơ sở dữ liệu trong WordPress

Lưu ý: Trước khi bạn thực hiện bất kỳ thay đổi cơ sở dữ liệu nào, hãy đảm bảo bạn có đủ bản sao lưu.

Tại sao bạn lại gặp lỗi Error establishing a database connection?

Tóm lại, bạn nhận được lỗi này vì WordPress không thể thiết lập kết nối cơ sở dữ liệu. Còn lý do tại sao WordPress không thể thiết lập kết nối cơ sở dữ liệu thì có rất nhiều nguyên nhân. Có thể là thông tin xác thực đăng nhập cơ sở dữ liệu của bạn sai hoặc đã bị thay đổi. Có thể máy chủ cơ sở dữ liệu của bạn không phản hồi. Hoặc có thể là cơ sở dữ liệu của bạn đã bị hỏng. Theo kinh nghiệm của chúng tôi, phần lớn lỗi này xảy ra do một số loại lỗi máy chủ tuy nhiên cũng có thể có các yếu tố khác. Hãy xem xét cách khắc phục sự cố này.

Vấn đề có xảy ra với / wp-admin / không?

Điều đầu tiên bạn nên làm là đảm bảo rằng bạn đang nhận được cùng một lỗi trên cả front-end của trang web, và back-end của trang web (wp-admin). Nếu thông báo lỗi giống nhau trên cả hai trang “Error establishing a database connection”, hãy tiến hành bước tiếp theo. Nếu bạn nhận được một lỗi khác trên wp-admin, ví dụ như “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 ”, sau đó bạn cần phải sửa chữa cơ sở dữ liệu của bạn.

Bạn có thể làm điều này bằng cách thêm dòng sau vào tệp wp-config.php của bạn. Thêm nó ngay trước dòng ‘That’s all, stop editing! Happy blogging ‘  trong wp-config.php.

1
define('WP_ALLOW_REPAIR', true);

Khi bạn đã thực hiện điều đó, bạn có thể xem các cài đặt bằng cách truy cập trang này: http://www.yoursite.com/wp-admin/maint/repair.php

wprepairdb

Hãy nhớ rằng, người dùng không cần phải đăng nhập để truy cập chức năng này khi xác định này được thiết lập. Điều này là do mục đích chính của nó là sửa chữa một cơ sở dữ liệu bị hỏng, người dùng thường không thể đăng nhập khi cơ sở dữ liệu bị hỏng. Vì vậy, một khi bạn đã hoàn tất việc sửa chữa và tối ưu hóa cơ sở dữ liệu của mình, hãy đảm bảo xóa nó khỏi tệp wp-config.php của bạn.

Nếu cách này không khắc phục được sự cố hoặc bạn đang gặp sự cố khi chạy bản sửa lỗi thì hãy tiếp tục đọc bài viết này vì bạn có thể tìm một giải pháp khác để hoạt động.

Kiểm tra tệp WP-Config

WP-Config.php có lẽ là tập tin quan trọng nhất trong toàn bộ quá trình cài đặt WordPress của bạn. Đây là nơi bạn chỉ định chi tiết cho WordPress để kết nối cơ sở dữ liệu của bạn. Nếu bạn đã thay đổi mật khẩu gốc, hoặc mật khẩu người dùng cơ sở dữ liệu, thì bạn cũng cần thay đổi tệp này. Điều đầu tiên bạn nên luôn luôn kiểm tra là nếu tất cả mọi thứ trong tập tin wp-config.php của bạn là như nhau.

1
2
3
4
define('DB_NAME', 'database-name');
define('DB_USER', 'database-username');
define('DB_PASSWORD', 'database-password');
define('DB_HOST', 'localhost');

Hãy nhớ rằng giá trị DB_Host của bạn có thể không phải lúc nào cũng là localhost. Tùy thuộc vào máy chủ, nó sẽ khác nhau.

Một số người cho rằng họ đã khắc phục sự cố của họ bằng cách thay thế localhost bằng IP. Thông thường, bạn sẽ thấy loại sự cố này khi chạy WordPress trên môi trường máy chủ cục bộ . Ví dụ trên MAMP, giá trị DB_Host khi thay đổi thành IP có vẻ hoạt động.

1
define('DB_HOST', '127.0.0.1:8889');

IP sẽ thay đổi đối với dịch vụ lưu trữ web trực tuyến.

Nếu mọi thứ trong tệp này là chính xác (hãy đảm bảo bạn kiểm tra lỗi chính tả), thì vấn đề là có điều gì đó sai ở cuối máy chủ.

Kiểm tra Máy chủ web của bạn (Máy chủ MySQL)

Thông thường bạn sẽ nhận thấy lỗi này khi thiết lập kết nối cơ sở dữ liệu khi trang web của bạn bị quá tải lưu lượng truy cập. Về cơ bản, hosting của bạn không thể xử lý tải (đặc biệt khi bạn đang sử dụng shared hosting). Khi đó trang web của bạn sẽ rất chậm và một số người dùng thậm chí còn gặp cả lỗi. Vì vậy, điều tốt nhất bạn nên làm là nhấc điện thoại để gọi hoặc livechat với nhà cung cấp hosting cho bbạn và yêu cầu họ hỗ trợ về vấn đề trên.

Đối với những người dùng muốn thử nghiệm nếu máy chủ MySQL đang chạy, bạn có thể làm một vài điều. Kiểm tra các trang web khác trên cùng một máy chủ để xem liệu chúng có vấn đề hay không. Nếu họ cũng nhận được cùng một lỗi, sau đó chắc chắn có cái gì đó sai với máy chủ MySQL của bạn. Nếu bạn không có bất kỳ trang web nào khác trên cùng một tài khoản hosting này, chỉ cần truy cập cPanel của bạn và thử truy cập phpMyAdmin và kết nối cơ sở dữ liệu. Nếu bạn có thể kết nối, chúng tôi cần xác minh xem người dùng cơ sở dữ liệu của bạn có đủ quyền không. Tạo một tệp mới có tên là testconnection.php và dán đoạn mã sau vào nó:

1
2
3
4
5
6
7
8
<?php
$link = mysql_connect('localhost', 'root', 'password');
if (!$link) {
die('Could not connect: ' . mysql_error());
}
echo 'Connected successfully';
mysql_close($link);
?>

Đảm bảo thay thế tên người dùng và mật khẩu. Nếu kết nối thành công, thì điều đó có nghĩa là người dùng của bạn có đủ quyền và có điều gì đó sai khác. Quay lại tệp wp-config của bạn để đảm bảo mọi thứ có chính xác (quét lại lỗi chính tả).

Nếu bạn không thể kết nối với cơ sở dữ liệu bằng cách vào phpMyAdmin, thì bạn biết nó là cái gì đó với máy chủ của bạn. Nó không nhất thiết có nghĩa là máy chủ MySQL của bạn bị hỏng. Điều đó có nghĩa là người dùng của bạn không có đủ quyền.

Trong trường hợp của chúng tôi, máy chủ MySQL của chúng tôi đang chạy. Tất cả các trang khác trên máy chủ đều hoạt động tốt trừ dichvuhostingiare. Khi chúng tôi cố gắng truy cập vào phpMyAdmin, chúng tôi đã gặp phải lỗi:

#1045 – Access denied for user ‘foo’@’%’ (using password: YES)

Khi đó chúng tôi đã gọi lên support của iNET là nhà cung cấp hosting cho dichvuhostinggiare. Bằng cách nào đó quyền của người dùng được đặt lại. Không chắc chuyện đó xảy ra như thế nào, nhưng rõ ràng đó là lý do. Họ quay trở lại và khôi phục các quyền và chúng tôi có thể đưa trang web trở lại trực tiếp.

Vì vậy, nếu bạn nhận được các truy cập bị từ chối lỗi trong hoặc kết nối với phpMyAdmin của bạn hoặc thông qua kết quả testconnection.php, sau đó bạn nên liên hệ với đơn vị support của bạn ngay lập tức để được hỗ trợ bởi họ.

Giải pháp làm việc cho người khác

Điều quan trọng cần lưu ý là chúng có thể không hiệu quả với bạn. Sử dụng rủi ro của riêng bạn và đảm bảo rằng bạn có đủ bản sao lưu nếu gặp sự cố.

Deepak Mittal nói rằng khách hàng của ông đã nhận được lỗi mà cơ sở dữ liệu cần được sửa chữa. Ngay cả sau khi sửa chữa cơ sở dữ liệu, lỗi vẫn không biến mất. Ông đã thử nhiều thứ khác nhau và cuối cùng, vấn đề là url của trang web. Rõ ràng đã được thay đổi mà gây ra lỗi vẫn tồn tại. Ông chạy truy vấn SQL bằng cách vào phpMyAdmin:

1
UPDATE wp_options SET option_value='YOUR_SITE_URL' WHERE option_name='siteurl'

Đảm bảo thay thế YOUR_SITE_URL bằng ví dụ url thực tế: http://www.wpbeginner.com. Các wp_options sẽ khác nếu bạn thay đổi tiền tố cơ sở dữ liệu WordPress mặc định .

Điều này dường như để khắc phục vấn đề cho anh ta và vài người khác cũng đã nhận xét về bài đăng của anh ấy.

Sachinum cho rằng anh ta có thể kết nối cơ sở dữ liệu với testconnection.php, vì vậy anh ta đã thay đổi người dùng wp-config.php thành người dùng root. WordPress bắt đầu hoạt động hoàn hảo. Sau đó, ông đã hoàn nguyên các thiết lập trở lại người dùng cơ sở dữ liệu và nó tiếp tục hoạt động. Anh không thể tìm ra điều gì sai, nhưng kết luận rằng đó là một lỗi đánh máy.

Cutewonders cho rằng họ đã xóa nội dung của active_plugins trong bảng wp_options và chỉnh sửa nội dung của recent_edited. Về cơ bản mà dường như để khắc phục vấn đề.

Chúng tôi đọc trên nhiều nguồn mà người dùng chỉ cần tải lên một bản sao mới của WordPress và nó đã sửa lỗi. Do vậy mà lời khuyên tốt nhất đến từ chúng tôi là hãy liên hệ với đơn vị support của nhà cung cấp hosting để được giải quyết vấn đề triệt để nhất.

Leave a Reply

Your email address will not be published. Required fields are marked *