有风塘主
发布于 2024-11-18 / 84 阅读
1
0

Mysql5.7忘记root密码后处理方法

问题

使用mysql5.7.x时,忘了root密码,又没有保存好root密码时,会无法使用root账户管理mysql

百度上找到的传统方法,在mysql5.7.x版本上用不了

原因

主要有两点:

  • mysqld_safe已经被废弃,rpm安装包默认不会安装mysqld_safe

  • user表中password列已经更改为authentication_string

解决方法

在经过多次试验之后终于解决了root登录问题。解决步骤如下

  1. 停止mysqld的服务,并使用特殊参数重启

$ sudo systemctl stop mysqld.service
$ sudo systemctl set-environment MYSQLD_OPTS="--user=mysql --skip-grant-tables --skip-networking"
$ sudo systemctl start mysqld.service
  1. 使用root用户重新登录,此时是不需要输入密码的

mysql -u root mysql
### 修改root账户的密码为新密码,并更新
mysql > UPDATE mysql.user SET authentication_string=PASSWORD("abcdef")  WHERE user='root' and host='localhost';
mysql > flush privileges;
mysql > quit

  1. 重置mysqld服务的参数,并重启

$ sudo systemctl unset-environment MYSQLD_OPTS
$ sudo systemctl restart mysqld.service


评论