Truy cập MySQL bị từ chối cho người dùng 'root' @ 'localhost'


24

Trong máy chủ của tôi, mỗi khi tôi cố gắng truy cập MySQL tôi đều gặp lỗi:

Truy cập bị từ chối cho người dùng 'root' @ 'localhost' (sử dụng mật khẩu: NO)

khi tôi cố gắng mysqladmin -u root -p passwordtôi nhận được

Truy cập bị từ chối cho người dùng 'root' @ 'localhost' (sử dụng mật khẩu: CÓ)

Làm cách nào tôi có thể truy cập MySQL trong máy chủ Ubuntu 12.04 của mình?


1
Cố gắng tránh nhập mật khẩu của bạn làm tham số trên dòng lệnh, những người dùng khác có thể tìm thấy nó thông qua danh sách quy trình. Tốt hơn nhiều để nhập trực tiếp vào chương trình hoặc sử dụng khóa
Amias

Cú pháp -p passwordsai, nó phải được -ppasswordnhưng không được khuyến khích. Thêm thông tin: stackoverflow.com/questions/5131931/
Mạnh

Kiểm tra trang này để biết nguyên nhân có thể của lỗi này và cách khắc phục để khắc phục lỗi này. rathishkumar.in/2017/04/ . Nó có thể giúp bạn.
rathishDBA

Câu trả lời:


12

Nếu bạn đang chạy n localhost, chỉ cần gõ lệnh bên dưới trong terminal:

mysql -u root -p

Nếu bạn đang sử dụng máy chủ bên ngoài, hãy nhập IP máy chủ (xxx.xxx.xxx.xxx):

mysql -hxxx.xxx.xxx.xxx -uroot -p

Bạn sẽ được nhắc nhập mật khẩu, nhập mật khẩu và bạn sẽ có thể truy cập vào dấu nhắc của MySQL.

Bạn cũng có thể xem câu trả lời này về cách đặt lại mật khẩu MySQL của bạn.


Tôi đã vào nhưng tôi vẫn không biết cách thay đổi hoặc chọn mật khẩu
user253867

Trong câu trả lời tôi liên kết đến, bạn phải thay thế 5.xở cuối bằng phiên bản máy chủ MySQL mà bạn đang sử dụng. Tôi đang sử dụng 5.5 nên lệnh của tôi sẽ làsudo dpkg-reconfigure mysql-server-5.5
Parto

9
Vì vậy, vấn đề là OP thấy Access denied for user 'root'@'localhost'. Bạn đề nghị gọi mysql -u root -p. Kết quả của lệnh này là : Access denied for user 'root'@'localhost'.
phil294

5
sudo mysql -u root -plàm việc cho tôi, nhưng mysql -u root -pkhông
Ivan Black

7

Tôi nhận được các triệu chứng tương tự khi tôi cập nhật, nhưng đối với tôi, cách khắc phục (sau khi giết mysql và khởi động lại bằng --skip-Grant-bảng để vào) là để thực thi

update mysql.user set plugin = '';

Quá trình cập nhật thích đặt cột này thành "unix_socket". Tôi không biết những gì cần phải hoàn thành, nhưng đối với tôi nó phá vỡ mọi thứ.


Điều này giải quyết vấn đề của tôi trên Ubuntu 16 LTS, sau khi thử mọi thứ .. quyền, nhóm người dùng. Thanx.
onalbi

vâng, tôi đã chạy tập lệnh cứng và nó đã thay đổi plugin thành mysql_socketbất cứ điều gì tôi cài đặt để sử dụng PASSWORD('xxxxxx'), đều không hoạt động.
TheVillageIdiot

4

Đặt mật khẩu cho mysql

sudo dpkg-reconfigure mysql-server-5.x

Bây giờ hãy mở terminal và gõ

mysql -uroot -p

cung cấp mật khẩu và nhấn enter


4

Tôi đã giải quyết vấn đề của mình với điều này:

sudo apt-get remove --purge mysql-server mysql-client mysql-common
sudo apt-get autoremove
sudo apt-get autoclean
sudo apt install mysql-server

Hãy cực kỳ có trách nhiệm. Với giải pháp này, bạn đang loại bỏ máy chủ MySql và tất cả dữ liệu của nó.


Không làm việc cho tôi.
Ivan Black

!! Hãy cực kỳ có trách nhiệm. Với giải pháp này, bạn sẽ loại bỏ máy chủ MySql và tất cả dữ liệu của nó.
Matiss Jurgelis

4

Giống như Ulrich Metzger, sau khi nâng cấp máy của tôi lên Ubuntu 16.04 và Mysql-server-5.7, tôi không thể đăng nhập bằng root vì plugincột đã thay đổi.

Vấn đề của tôi không được giải quyết với sudo dpkg-reconfigure mysql-server-5.7+ loại bỏ + tẩy + làm sạch.

Tôi đã phải dừng dịch vụ mysql:

# sudo service mysql stop

Sau đó khởi động lại daemon mysql với --no-grant-tablestùy chọn:

# sudo mysqld_safe --no-grant-tables &

Sau đó, trong một thiết bị đầu cuối khác, hãy nhập bảng điều khiển mysql (hiện không cần xác thực) bằng lệnh mysqlvà cập nhật các cột mật khẩu và plugin thông qua SQL UPDATE:

UPDATE mysql.user 
  SET authentication_string=PASSWORD(''), 
      plugin='mysql_native_password'
WHERE User='root' AND Host='localhost';

Cuối cùng, hủy mysqld_safelệnh, khởi động lại dịch vụ mysql và kết nối với mysql bình thường:

# sudo service mysql start
# mysql

2

Sau khi nâng cấp từ Ubuntu 14.4LTS lên 16.4LTS, người dùng root mysql không thể đăng nhập thêm do nhập sai trong cột plugin của bảng người dùng mysql. Bản nâng cấp đặt giá trị plugin cho người dùng root @ localhost thành auth_socket nhưng mục nhập chính xác phải là mysql_native_password , nếu bạn đã sử dụng mã hóa mật khẩu gốc mysql trước đó.


Đây là một trong những điều làm việc cho tôi, và dường như là gốc rễ của vấn đề. Gỡ cài đặt và cài đặt lại sẽ không làm gì để khắc phục "sự cố".
SteveFromAccounting
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.