很早前安装了MYSQL,现在由于需要使用MYSQL但忘记密码,我在网上搜到凌晨一点,网上大部分的方法都是通过在My.ini或是My_default.ini中添加–skip-grant-tables的方法来实现跳过Mysql密码来连接数据库,并更改密码。这些方法对我来说都不适用。最后综合两篇博客,我找到了一种可靠的方法,便记录下来以防之后又忘记密码。
修改密码
记得原密码情况下,修改新密码:
登录到数据库后,输入
set password for 用户名@localhost = '新密码';
如图所示:
修改root@localhost用户的密码为admin:
set password for root@localhost = 'admin';
忘记密码后重置密码
第一步:关闭mysql服务
- 使用管理员身份打开cmd,将目录从默认c盘位置切换到mysqld.exe的安装目录,我的是默认安装目录:C:\Program Files\MySQL\MySQL Server 8.0\bin
cd C:\Program Files\MySQL\MySQL Server 8.0\bin
- cmd输入命令: net stop mysql,确保关闭mysql服务
(如果此处报错,可能是MySQL服务名称 不是MySQL,我的MySQL服务名称 为 MySQL80,所以我使用 net stop mysql80 命令关闭mysql服务)
net stop mysql
第二步:跳过Mysql密码验证
关闭Mysql服务之后,继续在C:\Program Files\MySQL\MySQL Server 8.0\bin目录下进行操作
输入
mysqld --console --skip-grant-tables --shared-memory
在输入这行代码后,已经成功跳过Mysql的密码登录了
第三步:无密码方式进入Mysql
再打开一个管理员模式运行的cmd.exe,进入mysql下的bin目录后,以无账号密码方式登录MySQL,然后重置数据库系统 root用户的密码为admin
- 输入下列命令行,以无账号密码方式登录MySQL
cd C:\Program Files\MySQL\MySQL Server 8.0\bin
mysql
- 刷新系统权限,输入
flush privileges;
- 重置密码,set password for root@localhost=‘新密码’;
以设置新密码为admin为例,输入
set password for root@localhost='admin';
最后大功告成,重置密码成功!
参考链接
- https://blog.csdn.net/qq_43342301/article/details/91288891
- https://www.cnblogs.com/Lints/p/11506902.html