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.
Đ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.
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.
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';
1command and change the authentication
method to log into MySQL as root:ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '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. Đâ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
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.ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'insert_password';
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: Bạn có thể nhận được một mã lỗi trước mặt nó: 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: 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: 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ó?Access denied for user 'root'@'localhost' [using password: YES]
ERROR 1045 [28000]: Access denied for user 'root'@'localhost' [using password: YES]
Access denied for user 'root'@'localhost' [using password: NO]
mysql -u root -p
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
0Bước 6: Đặt mật khẩu mới cho tài khoản:
sudo mysql
1Results:
người sử dụng | cắm vào |
nguồn gốc | mysql_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
2Bướ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
4Nế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
5Bướ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
0Bước 6: Đặt mật khẩu mới cho tài khoản:
sudo mysql
8Thay 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.