MySQL-8.0.21数据库忘记密码解决方案
由于装mysql的过程中忘了记录初始密码,导致后面用navicat管理数据库的时候连接不上导致报错,查阅了很多资料,现将最完整无误的解决方案记录下来。
一:首先,执行操作之前确保mysql服务器端已结束运行:
打开dos窗口 进入mysql安装目录下的bin文件夹下执行:
net stop mysql
二:重新打开一个dos窗口,找到mysql安装目录下的bin文件夹,在此打开命令行界面,输入以下语句并回车:
mysqld --console --skip-grant-tables --shared-memory
这一步主要是为了跳过mysql的用户验证。
二、重新打开一个新的命令行界面,在mysql安装目录下的bin文件夹下,此时可以直接登录数据库:
mysql -u root -p
提示输入密码时直接回车
三、先执行下面的语句将密码设为空
UPDATE user SET authentication_string = ‘’ WHERE User = ‘root’;(分号必须有)
四、设置新密码:
ALTER user ‘root’@‘localhost’ identified by ‘新密码’;(分号必须有)
此时可能会报错:The MySQL server is running with the --skip-grant-tables option so it cannot execute。
那么就执行: flush privileges; 去刷新权限;
然后继续重新设置新密码(即:ALTER user ‘root’@‘localhost’ identified by ‘新密码’;)
五、上述步骤执行完之后记得要刷新权限
flush privileges;
至此密码就修改成功。
关闭第二部的窗口
启动mysql服务,登录mysql,去验证是否成功。
注明:本文参考原文:https://www.haowuliaoa.com/article/info/1498430.html