前景提要:代码写完了,想要更新环境,突然发现启动jar包时连接不到数据库了,仔细琢磨发现应该是密码不对。但密码只有最开始安装时才记得,现在早忘了,因此想要找一个不用修改任何配置就能重置密码的一个方法(毕竟修改线上数据库配置万一哪里出错可能导致重大事故),经过多方参考,整理了两种重置root密码的方式,带详细图文步骤。
ps:作者数据库版本为 mysql 8.0.34
方式一:以无密码模式启动服务并修改
1、以管理员模式运行cmd命令窗口
2、关闭mysql服务
net stop mysql80
或使用windows的服务页面来进行关闭
3、找到mysql的配置文件(my.ini)所在路径并复制
4、指定配置文件并以无密码模式启动mysql
mysqld.exe --defaults-file="你的路径\my.ini" --console --skip-grant-tables --shared-memory
即:mysqld.exe --defaults-file="E:\DevApp\MySQL\MySQL Data\MySQL Server 8.0\my.ini" --console --skip-grant-tables --shared-memory
5、使用管理员模式启动一个新的cmd窗口
6、执行mysql命令,无密码进入mysql服务
7、切换到mysql数据库
use mysql;
8、修改密码
ALTER USER 'root'@'localhost' IDENTIFIED BY '12345678';
由于权限认证没有重新加载,执行修改密码语句后会报错。
9、输入命令“flush privileges;”重新加载权限
flush privileges;
10、再次修改root账户密码
ALTER USER 'root'@'localhost' IDENTIFIED BY '12345678';
11、输入命令“exit”退出命令提示符窗口
12、关掉所有的命令行窗口,打开新窗口重新启动mysql
net start mysql80
或使用windows服务来重新启动
13、使用新密码登录
mysql -u root -p
方式二:如果还存在可用的sqlyog或navicat连接
1、以navicat为例,新建一个查询,数据库选择mysql
2、执行修改密码sql语句并刷新
ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
flush privileges;