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