mysql的密碼忘記了,登陸被拒絕,需要修改密碼。
版本:mysql8.0.11
vim /etc/my.cnf 配置文件中加入skip-grant-table;
/etc/init.d/mysqld restart;
mysql -u root -p 1qaz@WSX 正常登陸;
查詢用戶密碼命令:mysql> select host,user,authentication_string from mysql.user;
host: 允許用戶登錄的ip‘位置'%表示可以遠程;
user:當前數據庫的用戶名;
authentication_string: 用戶密碼(後面有提到此字段);
##修改root密碼的步驟:
如果當前root用戶authentication_string字段下有內容,先將其設置爲空後再修改密碼。
use mysql;
update user set authentication_string='' where user='root';
ALTER user 'root'@'%' IDENTIFIED BY '1qaz@WSX';
此處有兩點需要注意:
1、不需要flush privileges來刷新權限。
2、密碼要包含大寫字母,小寫字母,數字,特殊符號。
修改成功; 重新使用用戶名密碼登錄即可;
##mysql8 之前的版本中加密規則是mysql_native_password,而在mysql8之後,加密規則是caching_sha2_password,
解決問題方法把mysql用戶登錄密碼加密規則還原成mysql_native_password.
ALTER USER 'root'@'%' IDENTIFIED BY '1qaz@WSX' PASSWORD EXPIRE NEVER;
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '1qaz@WSX';
FLUSH PRIVILEGES;
能正常登陸後註釋掉了skip-grant-table;
/etc/init.d/mysqld restart;
https://www.jb51.net/article/142025.htm
https://blog.csdn.net/qq_36068954/article/details/80175755