Bạn đang gặp vấn đề và muốn khắc phục lỗi không kết nối được cơ sở dữ liệu WordPress?
Vào một ngày đẹp trời bạn truy cập vào Website & thấy một lỗi với dòng chữ như vậy:
Error establishing a database connection
Bạn đang cảm thấy bắt đầu lo lắng khi không thể truy cập vào nội dung cũng như đăng nhập vào giao diện quản trị phải không?
Thật ra đây là một lỗi phổ biến về cơ sở dữ liệu thường gặp trên các Website WordPress mà mình cho rằng không có nhà quản trị chuyên nghiệp nào có thể tránh khỏi.
Đôi khi một nguyên nhân khách quan cũng khiến WordPress không thể kết nối với cơ sở dữ liệu
Nếu bạn đang gặp lỗi này thì hãy thư giãn, uống một ngụm trà & tiếp tục kéo xuống để xem những thứ sắp diễn ra.
Trong bài viết này mình sẽ đưa ra cho bạn một số giải pháp khắc phục lỗi không kết nối được cơ sở dữ liệu WordPress một cách đơn giản & nhanh chóng nhất.
Lỗi không kết nối được cơ sở dữ liệu là gì?
WordPress là một CMS (hệ thống quản lý nội dung) vì vậy nó cần có cơ sở dữ liệu (Database) để giao tiếp & phân phối nội dung cho người dùng. Nếu không có cơ sở dữ liệu Website của bạn sẽ không có gì ngoài một trang trắng.
Hoặc có thể nói cơ sở dữ liệu là phần quan trọng nhất của một Website WordPress, tại đây nó lưu trữ toàn bộ thông tin quan trọng bao gồm bài viết trang, hồ sơ người dùng, các cấu hình của theme/plugin,...
Khi bạn gửi một yêu cầu truy cập vào Website, WordPress sẽ kết nối với cơ sở dữ liệu & gửi các nội dung bạn cần ra màn hình trình duyệt.
Tuy nhiên trong một số trường hợp ngoài ý muốn, cơ sở dữ liệu & WordPress không được kết nối với nhau bạn sẽ gặp lỗi "Error establishing a database connection" trên màn hình.
Tại sao lại xảy ra lỗi không kết nối được cơ sở dữ liệu?
Có một vài nguyên nhân chính dẫn đến lỗi kết nối cơ sở dữ liệu WordPress, nắm bắt được các nguyên nhân này bạn sẽ dễ dàng khắc phục.
Nguyên đầu tiên là do thông tin cơ sở dữ liệu không khớp.
Để Database kết nối được với WordPress, bạn cần có những thông tin quan trọng sau:
Các thông tin này bắt buộc phải khớp với thông tin trong tệp wp-config.php của WordPress. Nếu như sai một chi tiết bạn sẽ gặp lỗi không kết nối được cơ sở dữ liệu.
Nguyên nhân tiếp tiếp theo có thể do một trục trặc về máy chủ, đây là nguyên nhân khách quan từ bên ngoài gây ra.
Cuối cùng cơ sở dữ liệu của bạn có thể đã bị hỏng do bạn vô tình phát vỡ hoặc nguyên nhân nào đó khách quan.
1. Kiểm tra lại thông tin kết nối cơ sở dữ liệu với WordPress
Hãy nhớ lại thời điểm trước khi xảy ra sự cố bạn có đụng chạm đến các đoạn mã trong tệp wp-config.php hay không hoặc bạn có vừa chuyển hosting từ nhà cung cấp này sang nhà cung cấp khác không.
Đây là 2 nguyên nhân có khả năng cao nhất khiến bạn không kết nối được cơ sở dữ liệu.
Đầu tiên bạn cần đi đến tệp wp-config.php & xem các dữ liệu quan trọng mà mình đã nói trên.
Đây là những thông tin bạn cần nắm trong tệp wp-config.php:
// ** MySQL settings – You can get this info from your web host ** //
/** The name of the database for WordPress */ define(‘DB_NAME’, ‘DatabaseName’);
=> DatabaseName là tên Database Website bạn muốn xem.
/** MySQL database username */ define(‘DB_USER’, ‘Database User’);
=> Database User là tên người dùng của Database
/** MySQL database password */ define(‘DB_PASSWORD’, ‘Password’);
=> Password là mật khẩu của Database
define( 'DB_HOST', 'localhost' );
=> localhost là máy chủ Database
Bây giờ bạn hãy truy cập Cpanel của Hosting. Nếu Hosting của bạn không có cpanel thì có thể xem xét chuyển sang Hawkhost, A2Hosting, DreamHost.
Khi vào Cpanel hãy tìm đến mục database & chọn MySQL® Databases.
Tại đây là danh sách database bạn đang có cũng như thông tin chi tiết về nó.
Sau đó dùng thông tin này để đối chiếu với thông tin bạn đã có ở tệp wp-config.php xem có khớp hay không. Nếu không khớp bạn hãy điền lại ở tệp wp-config.php.
Trong trường hợp bạn không chắc chắn mật khẩu có khớp hay không thì có thể nhấn vào Change Password sau đó thay đổi & nhớ dán password mới thay vào phần Password trên tệp wp-config.php.
Còn database server thông thường sẽ mặc định với tên "localhost" vì vậy bạn không cần quan tâm về nó.
Bây giờ hãy lưu tệp trên lại & tiến hành truy cập vào Website của bạn.
Nếu như nó hoạt động trở lại thì bạn đã giải quyết xong, tuy nhiên nếu như không được bạn hãy tiếp tục với cách sau.
2. Kiểm tra tình trạng máy chủ
Máy chủ đôi khi cũng là thủ phạm khiến bạn không thể kết nối được cơ sở dữ liệu với WordPress.
Nếu bạn đang sử dụng Shared Hosting có lẽ khả năng bạn sẽ rơi vào rắc rối này vì lý do quá tải máy chủ.
Về cơ bản khi dùng Shared Hosting nghĩa là bạn đang sử dụng chung tài nguyên máy chủ với nhiều Website khác, khi có một người trong hệ thống sử dụng quá nhiều nó sẽ ảnh hưởng đến Website của bạn.
Mặc dù lỗi này thường xảy ra vài giây cho tới vài phút sẽ trở về trạng thái bình thường, tuy nhiên nếu như quá lâu bạn có rất nhiều cách giải quyết.
Một số Blogger có các hướng dẫn kiểm tra tình trạng máy chủ bằng cách tạo ra một tệp thử nghiệm. Hoặc đơn giản là kiểm tra một Website khác cùng hoạt động trên Hosting của bạn.
Tuy nhiên khi đã bỏ tiền ra sử dụng dịch vụ thì chẳng dại gì mà làm vậy cho mệt & tốn thời gian. Thay vào đó bạn chỉ cần gửi một ticket đến bộ phận hỗ trợ của nhà cung cấp Hosting. Sau đó họ sẽ tìm ra vấn đề & giải quyết cho bạn.
Trường hợp họ không giải quyết được bạn nên nghĩa đến việc chuyển sang một nhà cung cấp Hosting uy tín khác. Ví dụ Hawkhost, StableHost.
Còn nếu như không muốn chia sẻ tài nguyên bạn có thể chuyển từ Shared Hosting sang dùng VPS để có một không gian dữ liệu cho riêng bạn. Nhưng giá VPS thường đắt hơn một chút & không phải giải pháp tốt nếu bạn mới bắt đầu phát triển Web.
3. Sửa cơ sở dữ liệu WordPress bị hỏng
Trường hợp 2 cách trên vẫn không có dấu hiệu cải tiến có lẽ là do cơ sở dữ liệu của bạn đã bị hỏng trong quá trình hoạt động.
Vì vậy bạn cần sửa lại nó. Và rất may cách này vô cùng đơn giản.
Đầu tiên bạn cần truy cập tệp wp-config.php & thêm đoạn mã sau:
define('WP_ALLOW_REPAIR', true);
Đừng quên lưu lại nhé!
Tiếp theo bạn hãy truy cập theo liên kết có dạng:
domaincuaban.com/wp-admin/maint/repair.php
Một giao diện có dạng như bên dưới hiện ra:
Trong trường hợp này mình khuyên bạn nên chọn Repair Database để sửa chữa cơ sở dữ liệu.
Sau khi sửa chữa xong bạn cần quay lại tệp wp-config.php & xóa đoạn mã đã dán. (Nếu bạn để thì bất kỳ ai cũng có thể truy cập & sửa chữa database của bạn)
Giờ thì hãy kiểm tra xem còn có lỗi về cơ sở dữ liệu WordPress nữa không nhé!
Ngoài ra, nếu không muốn dùng cách thêm code vào tệp như ở trên bạn có thể sửa chữa cơ sở dữ liệu bằng cách truy cập Cpanel -> chọn phpMyadmin.
Sau đó chọn tên Database của Website cần sửa chữa.
Kéo xuống dưới cùng danh sách & chọn Check all (hoặc theo dõi bảng) & show các tùy chọn bên cạnh. Cuối cùng nhấn Repair table (hoặc sửa chữa bảng) để kết thúc
Phương pháp bổ sung
Nếu như như đã thử mọi cách vẫn không có kết quả khả quan bạn hãy thử những cách bổ sung dưới đây, mặc dù nó không thực sự phổ biến & hiệu quả nhưng đôi khi có thể hữu ích cho bạn.
1. Cập nhật URL Website WordPress
Để làm cách này bạn hãy truy cập phpMyadmin -> chọn tên database của Website cần cập nhật. Sau đó tick vào tab SQL & dán đoạn mã sau
UPDATE wp_options SET option_value=
'URL_CUA_BAN'
WHERE option_name=
'siteurl'
Thay wp_ bằng tiền tố Database của bạn & URL_CUA_BAN bằng domain của Website.
Đừng quên nhấn Go (hoặc thực hiện) ở góc phải để chạy truy vấn của bạn & kết thúc.
2. Khởi động lại máy chủ
Nếu bạn dùng VPS thì đôi khi khởi động lại máy chủ cũng giúp bạn khắc phục lỗi không kết nối được cơ sở dữ liệu WordPress.
Để khởi động lại bạn chỉ cần truy cập Dashboard của nhà cung cấp dịch vụ VPS, sau đó tìm đến máy chủ của bạn & chọn Reset.
Lời kết
Hy vọng bài viết này đã giúp bạn khắc phục lỗi không kết nối được cơ sở dữ liệu WordPress. Về cơ bản đây là một lỗi ít nhiều bạn sẽ gặp một lần trong việc quản trị & phát triển Web.
Mình nghĩ lỗi này cũng không có gì phức tạp kể cả khi bạn không rành về code, thông thường một trong 3 cách trên sẽ giúp bạn giải quyết triệt để vấn đề của bạn.
Ngoài ra mình khuyên bạn nên dọn dẹp & tối ưu Database cũng như bảo mật Website WordPress để hạn chế tối đa khả năng lỗi kết nối cơ sở dữ liệu.
Bạn đã khắc phục lỗi không thể kết nối được cơ sở dữ liệu WordPress rồi chứ? Cho mình biết câu trả lời của bạn cũng như bất kỳ thắc mắc nào trong comment bên dưới. Mình sẽ nhanh chóng phản hồi cho bạn.
Nếu hay bài viết này hay đừng quên chia sẻ cho bạn bè của bạn, biết đâu nó cũng có ích cho họ!
Chúc mừng bạn đã sửa thành công!
Mấy cách trên có áp dụng được trên localhost không Nam?
Tất nhiên là được rồi Khanh, ngoại trừ vấn đề không liên hệ được bộ phận hỗ trợ thôi. 😀
Mình vừa chuyển hosting sang nhà cung cấp khác mà quên để ý tiền tố Database, may mà có hướng dẫn của bạn nên mình đã fix xong, cảm ơn rất nhiều.
Vui vì vấn đề của bạn đã được giải quyết!
Bài viết của bạn rất hữu ích, tôi đã thay đổi mật khẩu cơ sở dữ liệu của mình và vấn đề đã được khắc phục.
Rất vui vì đã giúp ích cho bạn