2014-09-17 29 views
6

Tôi bị kẹt khi cố truy cập mysql. Đây là lần đầu tiên của tôi vì vậy hãy kiên nhẫn với tôi.Bị kẹt với quyền truy cập bị từ chối cho người dùng 'root' @ 'localhost' - Thiết bị đầu cuối, máy Mac

Ban đầu tôi đã cố gắng thiết lập Ruby và Rails và mọi thứ hoạt động bình thường mong đợi truy cập bị từ chối khi kết nối với máy chủ, SO tôi chạy lệnh này.

mysql -uroot -p 

Tôi đã thử các mật khẩu khác nhau bao gồm để trống và nhận lỗi này.

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

Tôi giả sử tôi cần đặt lại mật khẩu cho người dùng root nhưng tôi dường như không thể làm cho nó hoạt động.

Trả lời

13

Một phương pháp:

  1. dừng máy chủ MySQL của bạn.
  2. khởi động máy chủ MySQL của bạn với tùy chọn --skip-grant-tables. Nó cho phép bạn kết nối với máy chủ mà không cần mật khẩu.

    /path/to/mysqld --skip-grant-tables & 
    
  3. kết nối với máy chủ của bạn bằng cách sử dụng client mysql:

    mysql 
    
  4. thay đổi mật khẩu gốc (thay thế NewPassord bởi những gì bạn muốn):

    UPDATE mysql.user SET password=PASSWORD('NewPassord') WHERE user='root'; 
    
  5. yout khởi động lại Máy chủ MySQL.

Có những người khác cách để thiết lập lại mật khẩu root MySQL: http://dev.mysql.com/doc/refman/5.6/en/resetting-permissions.html

+1

Tôi không có bất kỳ cơ sở dữ liệu nào có tên 'mysql', tôi có hai cơ sở dữ liệu:' information_schema' và 'test'. Tôi kết nối thông qua lệnh này: 'mysql -h127.0.0.1' như thông qua chỉ' mysql' tôi đã nhận được lỗi này: 'ERROR 2002 (HY000): Không thể kết nối với máy chủ MySQL cục bộ thông qua socket '/ tmp/mysql. sock '(2) ' – Saurabh

+1

Trong trường hợp của tôi, tôi gặp lỗi sau: ERROR 1054 (42S22): Cột không xác định' mật khẩu 'trong' danh sách trường '. Đối với điều đó, tôi đã kiểm tra cấu trúc bảng người dùng và nhận ra rằng tên cột là 'authentication_string'. Theo liên kết sau: http://stackoverflow.com/questions/30692812/mysql-user-db-does-not-have-password-columns-installing-mysql-on-osx –

+0

Tôi đã thử sudo mysqld_safe --skip -grant-tables, nhưng nó không hoạt động. dấu phẩy này:/path/to/mysqld --skip-grant-tables &, hoạt động cho tôi. Thx, mac của tôi là OSX10.11.6, mysql server5.7.17 –

0

@Muur bước cuối cùng đã không làm việc cho tôi (mysql Ver 14,14 distrib 5.7.19) tôi đã phải thay đổi truy vấn để update user set authentication_string=password('1111') where user='root';update user set password_expired=N where user='root';

Các vấn đề liên quan