Hướng dẫn how do i fix mysql error access denied for user root localhost? - làm cách nào để khắc phục lỗi mysql truy cập bị từ chối cho người dùng root localhost?

Giới thiệu

Hầu hết người dùng MySQL đều gặp lỗi 1698 (28000): Truy cập bị từ chối cho người dùng ‘root,@localhost. Thông báo lỗi này thường xuất hiện cho các cài đặt mới của MySQL khi bạn cố gắng kết nối với MySQL với người dùng gốc.

Hướng dẫn này sẽ chỉ cho bạn cách giải quyết nhanh chóng quyền truy cập bị từ chối cho người dùng root trên localhost. Các hướng dẫn được phác thảo áp dụng cho cả MySQL và MariaDB. Sẽ không cần phải sửa đổi bất kỳ bảng hoặc thực hiện cấu hình phức tạp.how to quickly resolve the access denied for user root on localhost. The outlined instructions apply to both MySQL and MariaDB. There will be no need to modify any tables or to perform complex configuration.

Hướng dẫn how do i fix mysql error access denied for user root localhost? - làm cách nào để khắc phục lỗi mysql truy cập bị từ chối cho người dùng root localhost?

Điều kiện tiên quyết

  • Truy cập vào một dòng lệnh hoặc cửa sổ thiết bị đầu cuối
  • MySQL hoặc MariaDB đã cài đặt
  • Người dùng có đặc quyền sudo hoặc rootsudo or root privileges

Khi bạn cài đặt MySQL và cố gắng truy cập nó trên máy cục bộ với người dùng gốc, lệnh bạn sử dụng là:

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 truy cập thông báo lỗi bị từ chối cho người dùng ‘root,@localhost.

Hướng dẫn how do i fix mysql error access denied for user root localhost? - làm cách nào để khắc phục lỗi mysql truy cập bị từ chối cho người dùng root localhost?

Bạn có thể kích hoạt quyền truy cập cho root bằng cách sử dụng một lệnh MySQL.

Giải quyết quyền truy cập bị từ chối cho lỗi gốc của người dùng

Để có thể đăng nhập vào MySQL làm Root, trước tiên hãy sử dụng

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'insert_password';
0 để sửa đổi người dùng gốc:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'insert_password';
0
to modify the root user:

sudo mysql

Nhập mật khẩu của bạn tại dấu nhắc. Một vỏ mysql tải.

Hướng dẫn how do i fix mysql error access denied for user root localhost? - làm cách nào để khắc phục lỗi mysql truy cập bị từ chối cho người dùng root localhost?

Sử dụng

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'insert_password';
1Command và thay đổi phương thức xác thực để đăng nhập vào MySQL làm root:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'insert_password';
1
command and change the authentication method to log into MySQL as root:

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

Hướng dẫn how do i fix mysql error access denied for user root localhost? - làm cách nào để khắc phục lỗi mysql truy cập bị từ chối cho người dùng root localhost?

Lệnh này thay đổi mật khẩu cho gốc người dùng và đặt phương thức xác thực thành mysql_native_password. Đây là một phương pháp truyền thống để xác thực và nó không an toàn như auth_plugin. Trong ví dụ trên, chúng tôi đặt ra root root thành 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. mysql_native_password. This is a traditional method for authentication, and it is not as secure as auth_plugin. In the example above, we set “root” as the password, but we encourage you to set a stronger password.

Kiểm tra quyền truy cập MySQL người dùng gốc

Sau khi bạn chạy các lệnh được liệt kê ở trên, hãy thoát vỏ MySQL bằng cách nhấn Ctrl + D trên bàn phím của bạn hoặc nhập

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'insert_password';
2 và nhấn Enter. Không cần phải khởi động lại dịch vụ MySQLD để đăng nhập.CTRL + D on your keyboard or type
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'insert_password';
2
and hit enter. There is no need to restart the mysqld service to log in.

Bây giờ hãy thử lại để truy cập MySQL với Root. Trong thiết bị đầu cuối, nhập vào:

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ẽ xem tin nhắn chào mừng MySQL.
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'insert_password';
1
command. Do not type in the system password to access MySQL as it will not work. If everything worked fine, you should see the MySQL welcome message.

Lưu ý: Lệnh

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'insert_password';
1 có thể không hoạt động cho các phiên bản MySQL và Mariadb cũ hơn 5,7,6 và 10.1.20 tương ứng.The
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'insert_password';
1
command may not work for MySQL and MariaDB versions older than 5.7.6 and 10.1.20 respectively.

Sự kết luận

Bây giờ bạn đã biết cách bỏ qua lỗi MySQL 1698 (28000): Truy cập bị từ chối cho người dùng ‘root,@

Có nhiều cách khác nhau để tiếp cận vấn đề 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 trong cú pháp SQL.

Lỗi truy cập của người Viking này bị từ chối là một trong những lỗi phổ biến nhất mà bạn sẽ gặp phải khi làm việc với MySQL.

Tìm hiểu cách khắc phục nó và xem một loạt các giải pháp nếu bản sửa lỗi được đề xuất không hoạt động, trong bài viết này.

Khi bạn cố gắng kết nối với cơ sở dữ liệu MySQL trên máy tính của riêng bạn (được gọi là Local LocalHost,), bạn có thể gặp lỗi này:

Access denied for user 'root'@'localhost' (using password: YES)

Bạn có thể nhận được một mã lỗi trước mặt nó:

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

Bạn cũng có thể gặp lỗi với việc sử dụng mật khẩu không có mật khẩu:

Access denied for user 'root'@'localhost' (using password: NO)

Bạn sẽ thấy điều này nếu bạn đăng nhập vào MySQL bằng dòng lệnh:

mysql -u root -p

Bạn cũng có thể thấy điều này nếu bạn đăng nhập vào MySQL bằng IDE như MySQL Workbench. Hoặc ngay cả khi bạn sử dụng phpmyadmin.

Điều đó có nghĩa là gì? Làm thế nào bạn có thể sửa nó?

Có một vài giải pháp cho vấn đề này, mà tôi đã nêu chi tiết dưới đây. Hãy thử một, và nếu nó không hoạt động, hãy thử một cái khác.

Ngoài ra, một mẹo để đăng nhập: don lồng nhập mật khẩu của bạn vào dòng lệnh, bởi vì điều này sẽ được lưu trữ trong lịch sử lệnh của bạn. Sử dụng tùy chọn -P, như đã đề cập ở trên, và sau đó bạn sẽ được nhắc nhập mật khẩu.

Giải pháp 1: sudo sau đó thay đổi mật khẩu

Nếu bạn nhận được lỗi của Access Access bị từ chối, một cách để giải quyết nó là bằng cách sử dụng sudo để đăng nhập vào MySQL và thay đổi mật khẩu gốc.

Root localhost trong mysql là gì?

root@localhost cho phép bạn kết nối từ máy chủ DB thông qua mysql.sock (tệp ổ cắm) root@'%' cho phép bạn kết nối qua TCP/IP, nhưng bạn phải kết nối rõ ràng với giao thức đó. Nếu không, MySQLD kết nối bạn là root@localhost.

sudo mysql

Lỗi truy cập của người Viking này bị từ chối là một trong những lỗi phổ biến nhất mà bạn sẽ gặp phải khi làm việc với MySQL.

Tìm hiểu cách khắc phục nó và xem một loạt các giải pháp nếu bản sửa lỗi được đề xuất không hoạt động, trong bài viết này.

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

Thay thế từ your_new_password bằng mật khẩu an toàn mới mà bạn muốn sử dụng cho tài khoản gốc.

Bước 7: Mở tệp My.cnf bạn đã mở trong Bước 1 và xóa dòng về các bảng Skip-Grant và lưu tệp.

Bước 5: Xóa các đặc quyền, nói với máy chủ hãy làm mới các bảng cấp và áp dụng các thay đổi của bạn, với lệnh này:

sudo mysql
0

Bước 6: Đặt mật khẩu mới cho tài khoản:

sudo mysql
1

Results:

người sử dụng cắm vào
nguồn gốcmysql_native_password

Bước 7: Thoát khỏi bảng điều khiển bằng cách nhấn Ctrl + D hoặc nhập thoát.

sudo mysql
2

Bước 8: Đăng nhập vào MySQL bằng tài khoản gốc và mật khẩu mới bạn đặt, sẽ hoạt động:

mysql -u root -p

Bây giờ bạn nên đăng nhập vào tài khoản gốc trong MySQL.

Giải pháp 2: Chỉnh sửa tệp My.cnf

Nếu giải pháp trên không hoạt động, bạn có thể cần chỉnh sửa tệp mysql.cnf để cho phép thay đổi tài khoản gốc.

Bước 1: Mở tệp My.cnf. Điều này có thể được lưu trữ trong:

sudo mysql
4

Nếu bạn không chắc chắn nó ở đâu, hãy tìm kiếm thư mục cài đặt MySQL của bạn (ví dụ: trên Windows hoặc Mac) cho tệp.

Nếu bạn không có tệp My.cnf (macOS không bao gồm một tệp theo mặc định). Bạn có thể tạo một trong thư mục /etc nếu bạn thích.

Bước 2: Thêm từ Bỏ qua các bảng tài trợ theo từ [MySQLD]. Tệp của bạn có thể trông như thế này:

sudo mysql
5

Bước 3: Khởi động lại máy chủ MySQL.

Bước 4: Đăng nhập vào tài khoản gốc:

mysql -u root -p

Bước 5: Xóa các đặc quyền, nói với máy chủ hãy làm mới các bảng cấp và áp dụng các thay đổi của bạn, với lệnh này:

sudo mysql
0

Bước 6: Đặt mật khẩu mới cho tài khoản:

sudo mysql
8

Thay thế từ your_new_password bằng mật khẩu an toàn mới mà bạn muốn sử dụng cho tài khoản gốc.

Bước 7: Mở tệp My.cnf bạn đã mở trong Bước 1 và xóa dòng về các bảng Skip-Grant và lưu tệp.

Bước 8: Khởi động lại máy chủ MySQL một lần nữa.

Bước 9: Đăng nhập vào tài khoản gốc một lần nữa:

mysql -u root -p

Bây giờ bạn sẽ có thể đăng nhập thành công bằng mật khẩu mới của mình và không gặp lỗi.

Sự kết luận

Một trong hai giải pháp này hy vọng sẽ giải quyết vấn đề cho bạn và bạn không còn bị lỗi truy cập bị từ chối cho người dùng ‘root,@localhost '.

Nếu bạn có bất kỳ câu hỏi, hãy sử dụng phần bình luận bên dưới.

Làm cách nào để khắc phục quyền truy cập localhost bị từ chối cho người dùng gốc?

Sử dụng lệnh thay đổi của người dùng và thay đổi phương thức xác thực để đăng nhập vào MySQL làm root: thay đổi người dùng 'root'@'localhost' được xác định với mysql_native_password bằng 'insert_password'; Lệnh này thay đổi mật khẩu cho gốc người dùng và đặt phương thức xác thực thành mysql_native_password.: ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'insert_password'; This command changes the password for the user root and sets the authentication method to mysql_native_password.

Làm thế nào để bạn sửa chữa MySQL không thể kết nối với localhost?

Bước 1: Cấu hình lại máy chủ MySQL thành cổng 3306..
Nhấp vào Bắt đầu và mở Trình cài đặt MySQL - Cộng đồng ..
Nhấp vào nút cấu hình lại ở phía trước máy chủ MySQL ..
Loại 3306 trong cổng.Thực hiện và hoàn thành cài đặt ..

Làm cách nào để khắc phục quyền truy cập gốc bị từ chối?

Nếu bạn nhận được lỗi của Access Access bị từ chối, một cách để giải quyết nó là bằng cách sử dụng sudo để đăng nhập vào MySQL và thay đổi mật khẩu gốc.using sudo to log in to mysql and change the root password.

Root localhost trong mysql là gì?

root@localhost cho phép bạn kết nối từ máy chủ DB thông qua mysql.sock (tệp ổ cắm) root@'%' cho phép bạn kết nối qua TCP/IP, nhưng bạn phải kết nối rõ ràng với giao thức đó.Nếu không, MySQLD kết nối bạn là root@localhost.lets you connect from the DB Server via mysql. sock (the socket file) root@'%' lets you connect via TCP/IP, but you must explicitly connect with that protocol. Otherwise, mysqld connects you as root@localhost .