LRI 1698 (28000): Truy cập bị từ chối đối với người dùng 'root' @ 'localhost' tại Ubuntu 18.04


22

Tôi đã làm theo hướng dẫn này để cài đặt MySQL nhưng sau khi cài đặt thành công MySQL, tôi không thể truy cập cơ sở dữ liệu.

LRI 1698 (28000): Truy cập bị từ chối cho người dùng 'root' @ 'localhost'


1
Tôi đã đối mặt với cùng một vấn đề, sau một số lần đào, nhận được rằng bạn phải đặt mật khẩu root mà bạn tự làm theo hướng dẫn tại StackOverFlow .
Mohammad.H Fathi

Câu trả lời:


46

Tôi tìm thấy một giải pháp tại đây liên kết , bằng cách làm theo giải pháp này tôi đã giải quyết vấn đề của tôi.

Các bước ngắn là:

sudo mysql -u root
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'test'; 

Lưu ý: đây testlà mật khẩu mới cho người dùng root. Ngoài ra, hãy nhớ chạy lệnh sudo service mysql restartsau khi thay đổi người dùng.


Cảm ơn bạn. Đó là máy chủ mysql lẻ không dự đoán nhập mật khẩu nữa.
gamofe

1
LRI 1064 (42000): Bạn có lỗi trong cú pháp SQL của mình; kiểm tra hướng dẫn tương ứng với phiên bản máy chủ MariaDB của bạn để biết đúng cú pháp để sử dụng gần 'USER' root '@' localhost 'được xác định với mysql_native_password BY' b230mehonot '' ở dòng 1
alrcal

cùng một lỗi ở đây ... :(
user1111929

@alhelal, Giải pháp dành cho MySQL không dành cho MariaDB. Vì vậy, bạn có thể thử một giải pháp khác.
Ashrafuzzaman Sujan

Không viết gốc mysql -u, Chỉ cần viết "sudo mysql", Trong các hệ thống Ubuntu chạy MySQL 5.7 (và phiên bản mới hơn), người dùng root được xác thực bằng plugin auth_socket theo mặc định.
ravisoni

13

Tôi tìm thấy một cách khác tốt hơn nhiều vì chúng tôi không cần cung cấp bất kỳ mật khẩu nào cho hệ thống cục bộ.
Nó là như sau.

Mở terminal và gõ

sudo mysql -u root -p

Nó sẽ nhắc bạn trong mysql, ở đây bạn có thể kích hoạt bất kỳ lệnh mysql nào.

Sử dụng bảng mysql để thay đổi loại bảng, vì vậy chúng tôi có thể sử dụng mật khẩu trống. Bellow là mệnh lệnh cho nó

USE mysql;

Bây giờ chúng ta thay đổi loại bảng bằng lệnh sau

UPDATE user SET plugin='mysql_native_password' WHERE User='root';

bây giờ chúng ta phải xóa các đặc quyền, bởi vì chúng ta đã sử dụng CẬP NHẬT. Nếu bạn sử dụng CHERTN, CẬP NHẬT hoặc XÓA trên các bảng cấp trực tiếp, bạn cần sử dụng QUYỀN RIÊNG TƯ để tải lại các bảng cấp.

FLUSH PRIVILEGES;

Bây giờ thoát khỏi mysql bằng lệnh sau

exit;

Bây giờ khởi động lại máy chủ mysql bằng lệnh sau

service mysql restart

Hy vọng điều này có thể giúp

Cảm ơn bạn.


2
Đây là câu trả lời đúng
Ningappa

Cảm ơn bạn rất vui khi được giúp đỡ :)
Krunal Pathak
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.