Cách khắc phục lỗi không kết nối được cơ sở dữ liệu

Nếu bạn thường xuyên sử dụng internet thì chắc hẳn không dưới một lần bạn nhìn thấy lỗi này. 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 trên trang web của tôi vào hôm qua. 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 mọi thứ.

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

Vì sao bạn gặp phải lỗi này?

vì sao không thể kết nối được cơ sở dữ liệu

Tóm gọn lại thì nguyên nhân bạn gặp lỗi này là do WordPress không thể thực hiện kết nối cơ sở dữ liệu.

Nhưng lý do vì sao WordPress không thể thực hiện kết nối cơ sở dữ liệu thì lại rất nhiều. Nó có thể là do thông tin đăng nhập vào cơ sở dữ liệu của bạn 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 tôi, nguyên nhân thường là do một số 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é.

1. Liệu có phải vấn đề này cũng xảy ra đối với /wp-admin/?

Điều đầu tiên bạn cần phải làm đó là đảm bảo rằng bạn đang có cùng một lỗi trên cả front-end và back-end của trang web (wp-admin).

Nếu tin nhắn thông báo “Error establishing a database connection” ở cả 2 trang thì hãy chuyển sang bước tiếp theo.

Nếu bạn đang có một lỗi khác trên wp-admin, ví dụ như “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.

Bạn có thể làm việc này bằng cách thêm dòng dưới đây vào tệp tin wp-config.php của mình.

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, bạn có thể xem mục cài đặt bằng cách đi đến trang:

  • 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 đến tính năng này khi mà cài đặt này được thiết lập.

Đó là vì mục đích chủ yếu của nó là sửa lại các cơ sở dữ liệu bị lỗi. Người dùng có thể không đăng nhập được vào trang quản trị khi mà cơ sở dữ liệu bị lỗi, vì vậy sau khi sửa và tối ưu hóa cơ sở dữ liệu xong, nhớ xóa đoạn code trên khỏi wp-config.php.

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 tệp tin 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à bạn xác định các thông tin chi tiết dành cho WordPress để kết nối cơ sở dữ liệu của mình.

Nếu bạn thay đổi database password, hoặc mật khẩu người dùng cơ sở dữ liệu 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 online

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ủ kết thúc.

3. Kiểm tra Web Host của bạn ( Máy chủ MySQL)

Thường thì bạn thấy lỗi không kết nối được cơ sở dữ liệu này khi mà trang web của bạn đang có 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 gọi điện hoặc trò chuyện trực tuyến với nhà cung cấp hosting của mình và hỏi họ xem máy chủ

4. Kiểm tra xem MySQL của bạn có phản hồi không.

Đối với những người muốn tự kiểm tra máy chủ MySQL, bạn cũng có thể làm một số thứ đấy. Kiểm tra các trang khác cùng máy chủ xem chúng 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à máy chủ MySQL 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 người dùng cơ sở dữ liệu 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 đó:

<php
 $link = mysql_connect('localhost', 'root', 'password');
 if (!$link) {
 die('Could not connect: ' . mysql_error());
 }
 echo 'Connected successfully';
 mysql_close($link);
 >

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 thể kết nối 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à máy chủ MySQL của bạn bị rớt, nó vẫn có thể là do người dùng 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à giấy phép 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. Họ trở về, 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 không hiệu quả với bạn, hãy chấp nhận rủi ro và đảm bảo rằng mình đã có bản sao lưu dự phòng đầy đủ phòng khi có bất kì vấn đề gì xảy ra nhé.

Từng có khách hàng của tôi gặp lỗi mà cần phải sửa chữa cơ sở dữ liệu. 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 ở đường dẫn của trang web. 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ư http://www.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 cho anh ấy và một vài người bình luận khác trên bài viết của anh nữa.

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.

Về tác giả

Duy Anh

Chào các bạn,

Mình là coder, đang sống và làm việc ở Mỹ. Mình thích viết lách nên muốn dành khoảng thời gian trống để chia sẻ các thủ thuật giúp các bạn xây dựng được trang web riêng của mình. Bạn nào cần xây dựng blog, web thì cứ ới, rảnh là mình giúp, tất cả FREE nhé!

Ý kiến cá nhân của bạn

bộ công cụ Wordpress hữu ích dành cho mọi website

Bộ công cụ hữu ích dành cho mọi website Wordpress

Bao gồm theme & plugin tốt nhất và được sử dụng nhiều nhất!

Xin vui lòng kiểm tra email để xác thực tài khoản!