在登录数据库过程中,如果遇到忘记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密码登录不成功的解决办法!