gốc mysql -u không hoạt động nhưng sudo mysql -u root thì sao, tại sao?


9

Gần đây tôi đã theo dõi một số hướng dẫn và cài đặt mysql bằng cách sử dụng sudo apt-get install mysql-server-5.7

Tôi có thể kết nối với cơ sở dữ liệu bằng mật khẩu bằng cách chạy lệnh sau:

sudo mysql -u root -p

Tôi cố gắng kết nối bằng cách chạy:

mysql -u root -p

nhưng tôi nhận được lỗi:

ERROR 1698 (28000): Access denied for user 'root'@'localhost'

Tại sao? Làm thế nào tôi có thể sửa lỗi này?


2
downvoter thân mến, bạn cũng có thể bỏ một lý do cho downvote, ít nhất là một giải thích tại sao đây là một câu hỏi ngu ngốc?
dùng1379280

Điều này có thể liên quan. Hãy xem một số câu trả lời: askubfox.com/questions/766334/ từ
Terrance

Bạn đã đặt mật khẩu root cho mysql trong quá trình cài đặt chưa?
Steel

@steel ấn: vâng tôi đã làm
user1379280

Câu trả lời:


23
  1. Truy cập với sudo: sudo mysql -u root -p
  2. Xóa người dùng root: drop user 'root'@'localhost';
  3. Tạo lại người dùng root: create user 'root'@'%' identified by 'your_password';
  4. Cấp quyền: grant all privileges on *.* to 'root'@'%' with grant option;
  5. Cập nhật bảng quyền: flush privileges;
  6. Thoát MYSQL và cố gắng kết nối lại mà không có sudo.

Phông chữ: không thể đăng nhập với tư cách người dùng gốc mysql từ tài khoản người dùng thông thường trong Ubuntu 16.04


Cảm ơn! Các bước này cũng có hiệu quả với tôi và sudobây giờ tôi không cần sử dụng mysql! Hình như thay thế máy chủ localhostvới %giải quyết vấn đề cho tôi.
Vikram Hosakote

nhưng vẫn không thể truy cập từ xa
Ciasto piekarz

Không làm việc cho tôi, bây giờ tôi không thể tham gia hoặc không có sudo!
David Powell
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.