Cách khắc phục lỗi không kết nối được cơ sở dữ liệu
17 Nov, 2021 admin
Đã bao giờ bạn gặp lỗi màn hình trắng tinh rồi có dòng chữ “Error establishing a database connection” chưa. Đây là lỗi không kết nối được cơ sở dữ liệu là một trong những lỗi đáng ghét nhất và nó có thể xuất hiện vì nhiều nguyên nhân khác nhau.
Đối với một người mới sử dụng WordPress thì đây có thể là vấn dề cực kì tồi tệ bởi nó tự xuất hiện mặc dù bạn không thay đổi điều gì cả.
Bản thân tôi cũng mới gặp tình trạng này. Nó khiến tôi mất hơn 20 phút để tìm lỗi và khắc phục vấn đề.
Khi đang tìm hiểu lỗi thì tôi mới chợt nhận ra là mình chưa từng có một bài viết cụ thể nào về khắc phục nó.
Vì vậy, trong bài viết này, tôi sẽ hướng dẫn các bạn cách sửa lỗi không kết nối được cơ sở dữ liệu trên WordPress với một loạt các phương pháp nhé.
Ngoài ra bạn có thể đọc 25 Lỗi thường gặp nhất trong WordPress để tìm tự cách sửa lỗi trên website của mình.
*Chú ý: Trước khi bạn thực hiện bất kì thay đổi nào trên cơ sở dữ liệu, hãy chắc chắn rằng mình đã có bản backup trang web đầy đủ và hoàn thiện nhất nhé.
Nếu chưa biết cách hãy đọc bài làm thế nào để sao lưu cơ sở dữ liệu WordPress.
Lỗi không kết nối được cơ sở dữ liệu là gì?
Tóm lại nguyên nhân lỗi này là do WordPress không kết nối được cơ sở dữ liệu.
Nhưng lý do gặp lỗi “Error establishing a database connection” rất nhiều.
Có thể do thông tin đăng nhập vào database không đúng hoặc đã bị thay đổi.
Nó cũng có thể là do máy chủ cơ sở dữ liệu không phản hồi.
Hoặc là cơ sở dữ liệu của bạn đã bị hỏng.
Theo kinh nghiệm của mình, nguyên nhân thường là do lỗi máy chủ.
Tuy nhiên vẫn có thể là do các tác nhân khác nữa. Hãy cùng xem các cách khắc phục vấn đề này nhé.
Cách khắc phục lỗi
1. Liệu có phải vấn đề này cũng xảy ra đối với /wp-admin/?
Hãy kiểm tra xem bạn có vào được Admin không. Bằng cách truy cập /wp-admin/.
Nếu vẫn có thông báo “Error establishing a database connection”.
Thì đến bước tiếp theo:
Ví dụ: “One or more database tables are unavailable. The database may need to be repaired” ( Có một hoặc nhiều hơn các bảng cơ sơ dữ liệu không hoạt động. Cơ sở dữ liệu cần phải được sửa lại), thì bạn cần phải sửa lỗi cơ sở dữ liệu trước.
Hãy thêm đoạn code dưới vào file wp-config.php. Thường nó nằm ngay trong thư mục gốc.
Hãy thêm nó ngay trước dòng “That’s all, stop editing! Happy blogging” trong wp-config.php nhé.
define('WP_ALLOW_REPAIR', true);
Sau khi đã hoàn thành thao tác trên, hãy đi đến trang Repair Database bằng cách:
- http://www.yoursite.com/wp-admin/maint/repair.php
Mục đích chủ yếu của nó là sửa lại các cơ sở dữ liệu bị lỗi.
Nhớ xóa đoạn code phía trên khỏi wp-config.php. Sau khi đã vào dược Admin nhé.
Nếu cách này không khắc phục được vấn đề, hoặc bạn gặp lỗi khi sửa chữa thì hãy tiếp tục đọc bài viết này nhé.
Bạn có thể tìm thấy được cách khác để thực hiện việc này đấy.
2. Kiểm tra file wp-config
wp-config.php chính là tập tin quan trọng nhất trong quá trình cài đặt WordPress của bạn.
Đây là nơi mà phải nhập chính xác thông tin để WordPress để kết nối cơ sở dữ liệu của mình.
Nếu bạn thay đổi database password, hoặc database username thì bạn cũng sẽ cần phải thay đổi tệp tin này.
Điều đầu tiên bạn nên kiểm tra đó là liệu mọi thứ trong tệp tin wp-config.php của bạn có đồng nhất không
define('DB_NAME', 'database-name'); define('DB_USER', 'database-username'); define('DB_PASSWORD', 'database-password'); define('DB_HOST', 'localhost');
Hãy nhớ dòng DB_Host không nhất thiết là ‘localhost‘.
Tùy thuộc vào host mà nó có thể rất khác nhau. Đối với những host phổ biến như HostGator, Bluehost, Site5 thì nó là “localhost”.
Bạn cũng có thể tìm thêm các giá trị host khác ở đây.
Một số người nói rằng họ đã sửa được lỗi này bằng cách thay ‘localhost‘ bằng địa chỉ IP.
Lỗi này cũng thường xuyên xảy ra khi vận hành WordPress trong môi trường localhost.
Ví dụ như trên MAMP, việc thay đổi giá trị DB_Host thành IP có vẻ như có thể khắc phục được vấn đề.
define('DB_HOST', '127.0.0.1:8889')
IP cũng sẽ là khác nhau đối với các dịch vụ web hosting.
Nếu như mọi thứ trong tệp tin đều đúng ( nhớ kiểm tra cả lỗi chính tả, lỗi đánh máy), thì có thể lẽ vấn đề là ở máy chủ.
3. Kiểm tra Hosting của bạn
Lỗi này gặp phải cũng có thể do quá nhiều lượt truy cập cùng lúc.
Về cơ bản, hosting của bạn không thể kiểm soát được việc tải trang ( nhất là khi bạn sử dụng shared hosting).
Trang web của bạn sẽ trở nên chậm hơn đối với ngay cả những người không gặp lỗi này.
Vì vậy, tốt nhất là bạn nên nhờ support từ nhà cung cấp hosting của mình và hỏi họ xem hosting có vấn đề gì không.
4. Kiểm tra xem server của bạn có phản hồi không.
Đối với những người muốn tự kiểm tra lỗi không kết nối được cơ sở dữ liệu này.
Hãy xem các trang khác cùng server có đang gặp cùng vấn đề không.
Nếu chúng cũng đang dính lỗi này, thì gần như chắc chắn là server của bạn có vấn đề.
Nếu bạn không có một trang nào khác trên cùng tài khoản hosting của mình thì hãy đi đến cPanel.
Thử truy cập phpMyAdmin và kết nối cơ sở dữ liệu. Nếu bạn kết nối được, thì ta cần phải xác thực lại database-user của bạn có đủ giấy phép không.
Tạo một tệp tin mới tên là testconnection.php và dán mã dưới đây vào đó:
Hãy nhớ phải thay thế tên người dùng và mật khẩu nhé.
Nếu kết nối thành công, tức là người dùng của bạn có đủ quyền, và lỗi là do nguyên nhân khác.
Quay lại tệp tin wp-config và đảm bảo mọi thứ đều chính xác (kiểm tra lại lỗi đánh máy lần nữa).
Nếu bạn không kết nối được cơ sở dữ liệu thông qua phpMyAdmin, thì vấn đề sẽ là ở máy chủ của bạn đấy.
Nó cũng không có nghĩa là server của bạn bị sập, nó vẫn có thể là do user không có đầy đủ giấy phép truy cập.
Trong trường hợp của tôi, máy chủ MySQL vẫn hoạt động bình thường.
Tất cả các trang khác trên máy chủ đều hoạt động bình thường ngoại trừ Dieuhau.
Khi tôi thử đi đến phpMyAdmin, thì tôi gặp phải lỗi này:
- #1045 – Access denied for user ‘foo’@’%’ (using password: YES)
Tôi đã gọi điện cho HostGator và đội ngũ hỗ trợ của họ đã nhanh chóng tìm ra vấn đề.
Vì một lý do nào đó mà quyền truy cập của người dùng đã bị thiết lập lại.
Không chắc chắn là nó đã xảy ra như thế nào, nhưng rõ ràng đó chính là lý do.
Nó được khôi phục lại giấy phép và trang web của tôi đã hoạt động lại bình thường.
Vì thế nếu bạn gặp lỗi từ chối truy cập trong quá trình kết nối đến phpMyAdmin hoặc qua kết quả testconnection.php thì hãy liên lạc với nhà cung cấp host cho bạn ngay lập tức để họ sửa lỗi cho bạn.
5. Các phương pháp khác
Nếu như những cách trên đều sửa được lỗi không kết nối được cơ sở dữ liệu.
Hãy backup đầy đủ và tiến hành cách sau.
Từng có khách hàng của tôi gặp lỗi Error establishing a database connection.
Thậm chí sau khi sửa lỗi cơ sở dữ liệu thì lỗi này vẫn còn đó.
Anh ấy đã thử mọi cách và cuối cùng thì vấn đề lại nằm ở URL trong bảng database
Rõ ràng là nó đã bị thay đổi khiến cho lỗi mãi không thể hết được.
Anh ấy chạy truy vấn SQL thông qua phpMyAdmin:
"UPDATE wp_options SET option_value='YOUR_SITE_URL' WHERE option_name='siteurl'"
Nhớ thay YOUR_SITE_URL bằng đường dẫn của bạn, ví dụ như https://dieuhau.com, wp_options sẽ khác nhau nếu như bạn thay đổi tiền tố trong database.
Điều này có vẻ đã khắc phục được lỗi không kết nối được cơ sở dữ liệu
Hãy học cách để bảo vệ và tối ưu hóa cơ sở dữ liệu WordPress để trang web có thể hoạt động một cách tốt nhất
Hãy đăng ký theo dõi tôi để nhận được nhiều thông tin hữu ích, những thủ thuật WordPress, và thông tin khuyến mãi giảm giá hosting và tên miền.