Lỗi access denied for user root localhost using password yes năm 2024

Đây là một lỗi xảy ra khi bạn cài Direct Admin và mật khẩu MySQL của tài khoản admin không đăng nhập được. Bài này tôi sẽ hướng dẫn các bạn cách sửa nó.

Hướng dẫn này dựa trên hướng dẫn của chính nhà phát triển Direct Admin: https://help.directadmin.com/item.php?id=45

Ta SSH vào VPS sau đó chạy lệnh sau để có thể đăng nhập mà ko cần pass

service mysqld stop > mysqld_safe --skip-grant-tables &

Sau đó ta sẽ đổi pass của root MySQL, thay rootpassMySQL bằng pass bạn muốn.

mysql mysql -e "UPDATE mysql.user SET password=PASSWORD('rootpassMySQL') WHERE user='root'; FLUSH PRIVILEGES;"

Tiếp đến ta khơi động lại MySQL

killall -9 mysqld_safe > killall -9 mysqld > service mysqld start

Đăng nhập vào MySQL root, gõ pass rootpassMySQL mà bạn vừa đặt vào.

mysql -uroot -p

Rồi đổi mật khẩu của tài khoản admin, thay daadminpass bằng pass cho admin bạn muốn.

GRANT ALL PRIVILEGES ON . TO da_admin@localhost IDENTIFIED BY 'daadminpass' WITH GRANT OPTION; > FLUSH PRIVILEGES; > quit

Sau đó kiểm tra lại mật khẩu của admin đã giống với mật khẩu bạn vừa đổi chưa.

vi /usr/local/directadmin/conf/mysql.conf > user=da_admin > passwd=daadminpass

Giờ thử vào lại Direct Admin xem được chưa

Hầu hết người dùng MySQL gặp phải LỖI 1698 (28000): Access denied for user ‘root’@’localhost’. Thông báo lỗi này thường xuất hiện đối với các cài đặt mới MySQL khi đang kết nối với MySQL bằng “user root“.

Bài viết này sẽ chỉ cho bạn cách nhanh chóng giải quyết quyền truy cập bị từ chối cho user root trên localhost. Các hướng dẫn được áp dụng cho cả MySQL và MariaDB. Sẽ không cần phải sửa đổi bất kỳ bảng nào hoặc thực hiện cấu hình phức tạp.

Lỗi access denied for user root localhost using password yes năm 2024

Điều kiện:

  • Truy cập vào dòng lệnh hoặc cửa sổ dòng lệnh.
  • Đã cài đặt MySQL hoặc MariaDB.
  • Người dùng có đặc quyền sudo hoặc root.

Sử dụng Root để truy cập MySQL

Khi bạn cài đặt MySQL và đang truy cập trên máy cục bộ bằng user root, bạn dùng lệnh:

mysql -u root -p

Trong hầu hết các trường hợp, bạn sẽ nhận được thông báo lỗi Access denied for user ‘root’@’localhost’.

Lỗi access denied for user root localhost using password yes năm 2024

Bạn kích hoạt quyền truy cập root bằng một lệnh MySQL.

Giải quyết quyền truy cập bị từ chối từ user root

Để có thể đăng nhập vào MySQL dưới dạng root, trước tiên hãy sử dụng sudo để sửa đổi user root:

sudo mysql

Nhập mật khẩu của bạn khi được nhắc.

Lỗi access denied for user root localhost using password yes năm 2024

Sử dụng lệnh

sudo mysql

0 và thay đổi phương thức xác thực để đăng nhập vào MySQL dưới dạng

sudo mysql

1:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'insert_password';

Lỗi access denied for user root localhost using password yes năm 2024

Lệnh này thay đổi mật khẩu cho user root và đặt phương thức xác thực thành

sudo mysql

3. Đây là một phương pháp truyền thống để xác thực và nó không an toàn như

sudo mysql

4. Ví dụ trên, chúng tôi đặt

sudo mysql

5 làm mật khẩu, nhưng chúng tôi khuyến khích bạn đặt mật khẩu mạnh hơn .

Kiểm tra quyền truy cập MySQL của User Root

Sau khi bạn chạy các lệnh được ở trên, bạn hãy thoát MySQL shell bằng cách nhấn

sudo mysql

6 hoặc nhập

sudo mysql

7 và nhấn

sudo mysql

8. Không cần phải khởi động lại

sudo mysql

9.

Bây giờ hãy thử lại để truy cập MySQL bằng

sudo mysql

1. Trong thiết bị đầu cuối, nhập:

mysql -u root -p

Nhập mật khẩu bạn đã sử dụng với lệnh

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'insert_password';

1. Không nhập mật khẩu hệ thống để truy cập MySQL vì nó sẽ không hoạt động. Nếu mọi thứ hoạt động tốt, bạn sẽ thấy thông báo chào mừng MySQL.

Kết luận

Bây giờ bạn đã biết cách khắc phục lỗi MySQL 1698 (28000): Access denied for user ‘root’@’localhost’

Có nhiều cách khác nhau để sửa lỗi này, nhưng chúng tôi đã chọn phương pháp dễ nhất và nhanh nhất. Đảm bảo nhập các lệnh như được liệt kê trong bài viết để tránh lỗi cú pháp SQL.