方法一:
sc query mysql
// 停止服务
net stop MYSQL80
#新建一个mysql-init.txt文件,写入修改密码命令
alter user ‘root’@‘localhost’ identified by ‘123456qq’;
mysqld --defaults-file=“C:\ProgramData\MySQL\MySQL Server 8.0\my.ini” --init-file=“C:\Program Files\MySQL\MySQL Server 8.0\mysql-init.txt” --console
mysqld --init-file=“C:\Program Files\MySQL\MySQL Server 8.0\mysql-init.txt” --console
net start MYSQL80
退出,重新启用服务
net start MYSQL80
用新密码登录
方法二:(5.7和8.0均适用)标红的地方表示可能需要根据自己电脑的安装情况进行修改
1、Windows+R键打开运行,输入services.msc点击确定,然后找到mysql的服务,这里是MySQL57
2、右键点击停止mysql服务
或者在管理员权限的命令行中使用net stop命令停止mysql服务
3、打开一个管理员权限的cmd命令行,然后输入mysqld命令使得mysql跳过权限验证运行,执行完这里会卡住,是正常现象,表示mysql已经跳过权限验证在运行了 -
mysqld --defaults-file="C:\ProgramData\MySQL\MySQL Server 5.7\my.ini" --shared-memory --skip-grant-tables
●这里需要注意,–defaults-file命令不一定要使用,需要先查看mysql安装目录是否有my.ini文件,如果没有才需要设置。如果有可以不需要设置(设置了也行,所以如果不想思考太多就全部都设置)
○如果在mysql目录下(就是跟bin文件夹同级目录下)没有my.ini文件,就需要到C盘的ProgramData目录下找到mysql,去里面找到my.ini文件,–defaults-file的值就是my.ini的目录所在
○注意C盘的ProgramData文件夹是一个隐藏文件,如果找不到,需要设置显示隐藏文件
●如果还找不到my.ini的路径,可以在第2步找到的mysql服务中寻找,双击打开就能看到(如果挡住了就按住鼠标左键往右移动)
4、卡住的cmd命令行不要动,打开一个新的cmd命令行(可以不用管理员权限打开),然后不需要输入密码直接登录mysql
mysql
5、修改密码
// 重新加载权限表
flush privileges;
// 修改root用户的密码,比如修改成root
alter user ‘root’@‘localhost’ identified by ‘root’;
7、在管理员权限的cmd中退出卡住的状态(使用Ctrl+Z或者Ctrl+C,直接关闭命令行也行),然后在服务中启动mysql服务