实践时,发现修改my.ini方法并不好用,可能和MySQL版本高有关系,采用下面的方法,亲测好用。

在登录数据库过程中,如果遇到忘记root密码时,该如何解决?

 1.使用管理员权限打开命令提示符,在命令行中输入: net stop mysql 

2.待mysql服务停止后,输入: mysqld --shared-memory --skip-grant-tables ,此时命令提示符窗口处于锁定状态,我们重新以管理员权限打开新的命令提示符窗口。

3.在新的命令提示符窗口输入: mysql -uroot -p 后回车,提示输入密码时直接按回车进入。

4.输入: use mysql; 

5.输入: update user set authentication_string='' where user='root'; ,将authentication_string置空。

注:在mysql8.0以上版本,

 update mysql.user set password='newpassword' where user='root';

 

 update mysql.user set password=PASSWORD('newpassword') where User='root'; 这两条命令已经不起作用了。

6.输入: alter user 'root'@'localhost' identified by 'newpassword'; newpassword是要设的新密码。

7.如果提示设置成功,则输入: flush privileges; 。完成后Ctrl+Z退出mysql,使用新密码重新登录即可。

注:此步骤切不可省略!!!

8.如果提示不成功,则关闭两个命令提示符,重新打开一个管理员权限的命令提示符窗口,输入: mysql -uroot -p 后回车,输入密码时直接按回车进入(因为此时密码已被置空)。

9.重复步骤4,步骤6,步骤7。

10.如果使用Navicat等可视化界面连接数据库时连接不成功的情况,如错误信息:2059。此时需要更改验证方式,使用命令提示符登录数据库,输入: ALTER USER'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'yourpassword'; yourpassword是你想要设置的密码。

11.提示成功后,重复步骤7,再次打开Navicat连接即可。

以上为mysql 8.0版本以上,忘记root密码或使用root密码登录不成功的解决办法!

参考文章:MYSQL8.0以上版本ROOT密码报错及修改 - Fantasy泽 - 博客园

Logo

更多推荐