mysql5.7忘记密码时,修改root密码

推荐方法二

方法一:

1、修改mysql 配置文件,添加 skip-grant-tables
vim /etc/my.cnf
[myslqd]
...................
skip-grant-tables
...................

2、重启数据库
systemctl restart mysqld
3、进入数据库,修改密码
直接 mysql -uroot -p  回车
use mysql
更换数据库

接下来输入:

mysql> update user set authentication_string = password("123456") where user = "root";
Query OK, 0 rows affected, 1 warning (0.00 sec)
Rows matched: 1  Changed: 0  Warnings: 1

mysql> flush privileges;
4、修改mysql 配置文件,去除 skip-grant-tables
5、重启数据库
systemctl restart mysqld

6、进入数据库,再次修改密码
mysql -uroot -p123456
mysql> use mysql;
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.

#设置密码复杂度
mysql> set global validate_password_policy=0;
Query OK, 0 rows affected (0.00 sec)

mysql> set global validate_password_length=1;
Query OK, 0 rows affected (0.00 sec)

#完成之后再次执行修改密码语句
mysql> alter user 'root'@'localhost' identified by '123456';
Query OK, 0 rows affected (0.00 sec)

mysql> flush privileges;

#再次查询库,就没有ERROR 1820 的告警了
mysql>use mysql;

方法二:

1、关闭数据库实例
systemctl stop mysqld

2、特殊模式启动
--skip-grant-tables  [跳过授权表]
--skip-networking    [禁止远程登录,只允许使用socket 登录]

#临时启动
mysqld_safe  --skip-grant-tables --skip-networking  &
3、登录数据库修改密码 [密码可以是任意内容]
mysql -uroot -pXXX
mysql> alter user root@'localhost' identified by 'gxkjnj@2021'
mysql> flush privileges;
exit
4、重启数据库
systemctl restart mysqld

5、登录验证
mysql -uroot  -pgxkjnj@2021
© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容