Bạn đang tìm nguyên nhân và cách fix lỗi “error establishing a database connection” trên website WordPress của bạn? TinoHost sẽ giúp bạn “điều tra” nguyên nhân và hướng dẫn cách sửa lỗi từng bước một qua bài viết này!
Tìm hiểu về lỗi “error establishing a database connection”
Hiểu một cách đơn giản, “error establishing a database connection” là lỗi kết nối đến cơ sở dữ liệu vì một lý do nào đó. Lỗi này xảy ra không phải do bạn cấu hình trên website, thông thường lỗi xảy ra là do cơ sở dữ liệu, server hoặc do băng thông.
Để thực sự hiểu hơn về vấn đề này, chúng ta sẽ tìm hiểu về cấu trúc của WordPress trước, sau đó đến các nguyên nhân dẫn đến lỗi “error establishing a database connection”.
Cấu trúc của WordPress
WordPress là một nền tảng công nghệ tuyệt vời giúp bạn xây dựng website của mình dễ dàng hơn bao giờ hết. Cấu trúc của nền tảng này bao gồm 2 thành phần chính:
- PHP: đây là một ngôn ngữ lập trình cấp cao, phần lớn các tệp, chức năng chính của WordPress được viết bằng ngôn ngữ này.
- MySQL: đây là một công nghệ quản lý cơ sở dữ liệu. WordPress sử dụng MySQL để lưu trữ toàn bộ nội dung trong website của bạn. Từ những thứ nhỏ như màu sắc, bố cục, tiêu đề, logo và hầu như tất cả mọi thứ đều được lưu trữ trong cơ sở dữ liệu MySQL.
WordPress cần cả 2 thành phần này kết hợp với nhau để có thể hoạt động tốt nhất. Muốn hiển thị website của bạn, WordPress phải sử dụng các lệnh PHP và lấy các thông tin từ cơ sở dữ liệu MySQL lên.
Quá trình này chính là nơi phát sinh lỗi, nếu bất kì một lỗi kết nối nào đó xảy ra. WordPress không thể kết nối với cơ sở dữ liệu và điều duy nhất WordPress có thể làm là hiển thị dòng “”error establishing a database connection”” lên màn hình.
Nguyên nhân gây ra lỗi “error establishing a database connection”
Cơ sở dữ liệu bị lỗi
Nguyên nhân dẫn đến có thể là do bạn bị tấn công, theme hoặc plugin bị cài các lệnh độc hại dẫn đến cơ sở dữ liệu của bạn bị rối tung lên.
Thông tin Database (cơ sở dữ liệu) của File wp-config.php bị sai
Đây là một lỗi khá phổ biến và dễ điều trị, do sai sót về thông tin đăng nhập vào Database là chủ yếu.
Máy chủ bị lỗi, máy chủ không phản hồi
Lỗi này thuộc về nhà cung cấp dịch vụ hosting của bạn. Nếu họ bị tấn công DDOS hoặc bị một lý do nào đó và sập toàn bộ máy chủ, website của bạn cũng sẽ bị ảnh hưởng theo.
Quá tải băng thông
Lỗi này xảy ra khi bạn mua những gói hosting nhỏ và website của bạn lại có lưu lượng truy cập lớn. Việc này gây quá tải băng thông dẫn đến lỗi do cơ sở dữ liệu không kịp phản hồi.
Cách fix lỗi “error establishing a database connection” trên Cpanel
Khi bạn thấy lỗi “error establishing a database connection” xuất hiện trên website của bạn, điều đầu tiên bạn nên làm là đăng nhập vào cơ sở dữ liệu của mình.
Sau khi đăng nhập xong, bạn mới có thể thực hiện các bước tiếp theo để sửa lỗi. TinoHost sử dụng Cpanel, tùy thuộc vào nhà cung cấp hosting của bạn, bạn sẽ được cấp DirectAdmin hoặc Cpanel hoặc không có…
Kiểm tra file wp-config.php
Sau khi đăng nhập vào Cpanel, bạn tìm đến Domains => Trang web đang bị lỗi.
Bạn tìm đến file wp-config.php => Edit.
Sau đây là những dòng dữ liệu bạn cần kiểm tra:
// ** MySQL settings – You can get this info from your web host ** //
/** The name of the database for WordPress */
define( ‘DB_NAME’, ‘database_name’ );
/** MySQL database username */
define( ‘DB_USER’, ‘username’ );
/** MySQL database password */
define( ‘DB_PASSWORD’, ‘password );
/** MySQL hostname */
define( ‘DB_HOST’, ‘localhost’ );
Đây là những thông tin quan trọng nhất trong việc WordPress có thể kết nối với cơ sở dữ liệu hay không. Do đó, bạn cần đảm bảo các thông tin này phải chính xác.
Bạn mở MySQL Database để kiểm tra các thông tin: Database_name, Username, password đã đúng với trong file wp-config.php hay chưa. Nếu chưa, bạn điều chỉnh chính xác lại.
Lưu ý: phần DB_HOST sẽ phụ thuộc vào gói hosting bạn đang sử dụng, nếu là Shared hosting, thông tin sẽ hiển thị là ‘localhost’, những trường hợp còn lại, bạn nên tham khảo tên của DB_HOST tại thông tin của nhà cung cấp.
Kiểm tra phân quyền
Các thông tin giữa MySQL Database và wp-config.php đã đúng, nhưng bạn vẫn gặp lỗi? Vậy bạn cần phải kiểm tra lại phân quyền của user đó có được cấp đủ hay không.
Thao tác: trong MySQL Database bạn kéo xuống và tìm mục Add User To Database. Tại đây, bạn cần chọn user và database tương ứng => Add.
Trong bản phân quyền như dưới ảnh, bạn cần chắc chắn là bạn đã nhấn vào All Privileges để cấp quyền cho user đó.
Sau khi hoàn tất, bạn nhấn Save Changes để lưu lại cấp quyền.
Kiểm tra Table Prefix Value
Bạn đã đảm bảo hoàn tất những sửa lỗi trên những trang web của bạn trả lại màn hình cài lại WordPress từ đâu hay một trang WordPress trống? Trong khi Website WordPress của bạn lại có dữ liệu? Vậy ta sẽ tiếp tục kiểm tra giá trị tại bản Prefix Value.
Ví dụ tại giá trị trong file wp-config.php là “tino_”.
Còn giá trị tại cơ sở dữ liệu lại giá trị “wp_”. Để khắc phục, bạn chỉ cần điều chỉnh 2 giá trị tại Table Prefix Value và cơ sở dữ liệu giống nhau là được.
Kiểm tra MySQL đã được bật hay chưa
Đây cũng là một lỗi khá phổ biến và nhiều người dùng mắc phải. Nếu hosting của bạn sử dụng là Cloudlinux, bạn sẽ được trang bị thêm một chức năng là PHP Selector, một tính năng hữu dụng giúp bạn bật tắt các PHP Extension tiện dụng và dễ dàng.
Tuy nhiên, đối với những người mới lần đầu sử dụng chức năng này trở nên vô cùng khó để sử dụng.
Bạn thực hiện như sau: tại Cpanel => Select PHP version => đảm bảo rằng bạn đã bật các PHP Extension như sau:
- Mbstring
- mysqlnd
- nd_mysqli
- pdo_mysql
- pdo_sqlite
Video hướng dẫn fix lỗi error establishing a database connection
Nếu bạn muốn hình thức xem video để nhìn thấy thao tác trực quan hơn, bạn có thể xem video hướng dẫn Cách sửa lỗi “error establishing a database connection” WordPress [A-Z] của TinoHost tại đây.
Khôi phục trạng thái ban đầu của WordPress
Đây là giải pháp cuối cùng khi bạn không thể làm gì nữa.
Trước khi thực hiện khôi phục lại trạng thái ban đầu của WordPress, bạn nên lưu lại dữ liệu tại file wp-content.
Bạn cũng nên liên hệ trực tiếp với nhà cung cấp dịch vụ hosting của bạn trước, các nhân viên kỹ thuật sẽ đưa ra những biện pháp kỹ thuật chuyên môn để xử lý tình huống tốt nhất!
Nếu, họ không thể giúp bạn giải quyết vấn đề, bạn hẳn sử dụng biện pháp khôi phục lại trạng thái ban đầu của WordPress.
Đến đây, TinoHost mong rằng bạn đã giải quyết được lỗi “error establishing a database connection” một cách thuận lợi nhất! Nếu chưa, bạn nên kiên nhẫn thực hiện lại và quan sát kĩ hơn thêm một lần nữa nhé! Chúc bạn thành công!
Những câu hỏi thường gặp về “error establishing a database connection”
Cách tránh lỗi "error establishing a database connection"?
Để tránh lỗi này diễn ra lần nữa, bạn có thể tham khảo 2 phương pháp sau:
- Thường xuyên sao lưu lại cơ sở dữ liệu của mình. Tất nhiên, dữ liệu là linh hồn website của bạn, vì vậy bạn nên sao lưu chúng lại. Nếu một ngày sự cố xảy ra và không thể khôi phục dữ liệu, bạn vẫn có thể mua hosting mới để dựng lại website.
- Nên sử dụng Hosting chất lượng. Đây là phương án giúp bạn giải quyết gần như 90% lỗi trên. Với một nhà cung cấp hosting chất lượng, ngoài sản phẩm chất lượng họ sẽ có dịch vụ hỗ trợ bạn 24/7 để giải quyết mọi vấn đề về hosting.
Cách giải quyết lỗi "error establishing a database connection" trên localhost?
Nếu bạn sử dụng nền tảng WordPress, bạn chỉ cần thực hiện theo các bước hướng dẫn phía trên là được. Vì không có quá nhiều sự khác biệt giữa máy chủ và localhost.
Thực hiện theo những phương pháp trên nhưng không thể sửa lỗi?
Vậy, điều tốt nhất bạn nên làm là liên hệ trực tiếp với nhà cung cấp dịch vụ hosting của bạn. Đối với khách hàng đã tin tưởng sử dụng dịch vụ của TinoHost, chúng tôi sẽ luôn sẵn sàng hỗ trợ bạn 24/7.
Nếu không có Cpanel, có thể giải quyết bằng cách nào?
Nếu gói hosting của bạn không kèm theo bản Cpanel, bạn có thể sử dụng phần mềm miễn phí tên là FileZilla, sử dụng phần mềm này để kết nối với máy chủ của bạn thông qua FTP.