Bạn đang sử dụng phiên bản mySQL nào? Tôi đang sử dụng 5.7.10 và gặp sự cố tương tự khi đăng nhập bằng quyền root
Có 2 vấn đề - tại sao tôi không thể đăng nhập bằng quyền root để bắt đầu và tại sao tôi không thể sử dụng 'mysqld_safe` để khởi động mySQL để đặt lại mật khẩu gốc.
Tôi không có câu trả lời để thiết lập mật khẩu gốc trong khi cài đặt, nhưng đây là những gì bạn làm để đặt lại mật khẩu gốc
Chỉnh sửa mật khẩu gốc ban đầu khi cài đặt có thể được tìm thấy bằng cách chạy
grep 'temporary password' /var/log/mysqld.log
http://dev.mysql.com /doc/refman/5.7/en/linux-installation-yum-repo.html
-
systemd
hiện được sử dụng để chăm sóc mySQL thay vìmysqld_safe
(đó là lý do tại sao bạn nhận được lệnh-bash: mysqld_safe: command not found
lỗi - nó chưa được cài đặt) -
Người dùng
user
cấu trúc bảng đã thay đổi.
Vì vậy, để đặt lại mật khẩu gốc, bạn vẫn khởi động mySQL bằng --skip-grant-tables
các tùy chọn và cập nhật user
nhưng cách bạn thực hiện đã thay đổi.
1. Stop mysql:
systemctl stop mysqld
2. Set the mySQL environment option
systemctl set-environment MYSQLD_OPTS="--skip-grant-tables"
3. Start mysql usig the options you just set
systemctl start mysqld
4. Login as root
mysql -u root
5. Update the root user password with these mysql commands
mysql> UPDATE mysql.user SET authentication_string = PASSWORD('MyNewPassword')
-> WHERE User = 'root' AND Host = 'localhost';
mysql> FLUSH PRIVILEGES;
mysql> quit
*** Edit ***
As mentioned my shokulei in the comments, for 5.7.6 and later, you should use
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';
Or you'll get a warning
6. Stop mysql
systemctl stop mysqld
7. Unset the mySQL envitroment option so it starts normally next time
systemctl unset-environment MYSQLD_OPTS
8. Start mysql normally:
systemctl start mysqld
Try to login using your new password:
7. mysql -u root -p
Tham khảo
Như nó nói tại http://dev.mysql.com /doc/refman/5.7/en/mysqld-safe.html ,
Điều này sẽ đưa bạn đến http:// dev .mysql.com / doc / refman / 5.7 / vi / server-management-using-systemd.html
nơi nó đề cập đến systemctl set-environment MYSQLD_OPTS=
về cuối trang.
Các lệnh đặt lại mật khẩu nằm ở cuối http:// dev.mysql.com/doc/refman/5.7/en/resetting-permissions.html