os: centos 7.4
db: mysql 8.0.22
普通用户忘记密码
普通用户忘记密码后,联系DBA,修改密码即可
mysql use mysql;
mysql alter user 'usr_abc'@'%.%.%.%' identified by 'mysqlmysql';
mysql flush privileges;
超级用户忘记密码
需要设置个权限参数,重启mysql实例生效。
添加 skip_grant_tables 参数(需要同时取消 validate_password* 一系列参数)
# vi /etc/my.cnf
[mysqld]
skip_grant_tables
skip_networking
重启 mysql 实例
# systemctl restart mysqld.service
# mysql
mysql use mysql;
mysql update mysql.user set authentication_string = '' where user='root' and host='localhost' ;
mysql flush privileges;
mysql exit;
这时密码置为空,需要取消 skip_grant_tables 参数后,重启 mysql 实例
# vi /etc/my.cnf
[mysqld]
#skip_grant_tables
#skip_networking
# systemctl restart mysqld.service
重新登录mysql后,修改密码
# mysql
mysql use mysql;
mysql alter user 'root'@'localhost' IDENTIFIED BY 'mysqlmysql';
mysql flush privileges;
mysql exit;
参考: