NỘI DUNG
Nếu bạn đang dùng hosting cPanel và gặp tình huống: đăng nhập cPanel bình thường, nhưng vừa bấm vào phpMyAdmin thì lập tức bị chặn với thông báo lỗi:
CPANEL_ERROR: mysqli_sql_exception: Access denied for user 'ten_user'@'localhost' (using password: NO)Ảnh minh hoạ:

Thì đây là một lỗi khá phổ biến trên các server dùng cPanel/WHM. Bài viết này sẽ giải thích nguyên nhân và cách khắc phục.
Nguyên nhân
Theo tài liệu chính thức từ cPanel, lỗi này xảy ra do phiên đăng nhập (session) trên trình duyệt bị lỗi thời (stale) hoặc mật khẩu của user cPanel bị lệch đồng bộ (desynchronized) với thông tin xác thực mà phpMyAdmin đang dùng để kết nối vào MySQL/MariaDB.
Nói dễ hiểu hơn: cPanel dùng chính tài khoản/mật khẩu cPanel của bạn để tự động đăng nhập vào phpMyAdmin (single sign-on). Khi mật khẩu MySQL nội bộ mà cPanel dùng để “bắt tay” với phpMyAdmin không còn khớp với phiên đăng nhập hiện tại (thường do trước đó có thay đổi mật khẩu, khôi phục tài khoản, di chuyển dữ liệu, hoặc phiên làm việc cũ còn lưu trong cache trình duyệt), phpMyAdmin sẽ cố gắng kết nối bằng thông tin xác thực cũ/không hợp lệ và bị MySQL từ chối truy cập.
Đây là lý do vì sao khi bạn đổi lại mật khẩu cPanel, lỗi biến mất ngay: việc đổi mật khẩu buộc hệ thống đồng bộ lại mật khẩu MySQL nội bộ, giúp phpMyAdmin xác thực thành công trở lại.
Cách khắc phục
Cách xử lý hiệu quả nhất là đổi lại mật khẩu cPanel, vì việc này buộc hệ thống đồng bộ lại mật khẩu MySQL nội bộ với tài khoản cPanel, giúp phpMyAdmin xác thực thành công trở lại. Bạn có thể chọn một trong hai cách sau, tùy vào việc tài khoản của bạn còn đăng nhập được vào cPanel hay không.
1. Đổi mật khẩu cPanel ở trang quản trị dịch vụ của nhà cung cấp
Hầu hết các nhà cung cấp hosting đều có một trang quản trị riêng (Client Area / My Services) để quản lý dịch vụ, tách biệt với chính cPanel. Đây là cách nên dùng nếu bạn muốn chắc chắn việc đổi mật khẩu được ghi nhận đồng bộ từ phía nhà cung cấp:
- Đăng nhập vào trang quản trị dịch vụ của nhà cung cấp hosting (nơi bạn đã mua/đăng ký gói hosting).
- Tìm đến gói dịch vụ hosting đang gặp lỗi, chọn mục quản lý (thường có tên như Manage, Chi tiết dịch vụ…).
- Tìm chức năng Đổi mật khẩu cPanel (Change cPanel Password) và đặt mật khẩu mới.
- Đợi ít phút để hệ thống cập nhật, sau đó đăng nhập lại cPanel bằng mật khẩu mới và thử vào phpMyAdmin.
Nếu bạn đang sử dụng dịch vụ Host tại AZDIGI bạn có thể xem hướng dẫn tại bài viết sau
2. Đổi mật khẩu ngay bên trong cPanel
Nếu bạn vẫn đăng nhập được vào cPanel bình thường (chỉ riêng phpMyAdmin bị lỗi), bạn có thể đổi mật khẩu trực tiếp từ bên trong:
- Đăng nhập vào cPanel.
- Vào mục Password & Security.
- Nhập mật khẩu mới (có thể đặt lại đúng mật khẩu cũ, hoặc đặt mật khẩu mới hoàn toàn) và lưu lại.
- Thử truy cập phpMyAdmin lại — lỗi thường biến mất ngay sau bước này.


Cả hai cách đều có chung mục đích là buộc hệ thống đồng bộ lại mật khẩu MySQL nội bộ với tài khoản cPanel, nên bạn chỉ cần chọn cách nào tiện hơn với mình.
Tổng kết
Lỗi mysqli_sql_exception: Access denied for user 'user'@'localhost' khi vào phpMyAdmin từ cPanel thường không phải do bạn làm sai điều gì, mà do mật khẩu bị lệch đồng bộ giữa cPanel và MySQL. Cách xử lý là đổi lại mật khẩu cPanel, có thể thực hiện từ trang quản trị dịch vụ của nhà cung cấp hoặc trực tiếp bên trong cPanel.
Nếu sau khi đổi mật khẩu bằng cả hai cách trên mà lỗi vẫn còn, rất có thể vấn đề nằm ở phía server (ví dụ user MySQL bị lỗi trong bảng grant, hoặc dịch vụ MySQL gặp sự cố) — trong trường hợp đó, bạn nên liên hệ bộ phận hỗ trợ kỹ thuật của nhà cung cấp hosting để được kiểm tra sâu hơn.
Nguồn tham khảo: cPanel Support – mysqli_sql_exception: Access denied for user
Với kinh nghiệm thực chiến từ việc tiếp xúc hàng ngày với vô vàn vấn đề về Website, Hosting, VPS, Server tại Phòng Kỹ thuật AZDIGI, mình luôn ấp ủ niềm đam mê chia sẻ kiến thức.
Mình xây dựng các blog không chỉ để tự trau dồi kỹ năng mà còn để cung cấp những tài liệu, hướng dẫn hữu ích nhất đến cộng đồng. Rất mong nhận được sự quan tâm của các bạn!
Để lại thông tin, mình sẽ phản hồi ngay.
