Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Làm cách nào để thay đổi mật khẩu tài khoản gốc MySQL trên CentOS7?

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

  1. 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)

  2. 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



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySql lấy danh sách các từ duy nhất từ ​​bảng trong đó các giá trị trong một trường được phân tách bằng dấu phẩy

  2. Cách xem lỗi truy vấn trong PDO PHP

  3. MySQL:Trang là gì?

  4. Làm cách nào để nhận được kết quả trên 2 bảng

  5. Để SHA512-băm một mật khẩu trong cơ sở dữ liệu MySQL bằng Python