MySql8登录1045 - Access denied for user ‘root‘@‘localhost‘ (using password: YES)确定

前言:

重启电脑后,mysql莫名其妙连接不上(可能是之前改了远程连接导致的),网上千篇一律的资料,基本都无法解决当前问题,找了好久,记录一下,希望对解决相关问题有帮助

环境及配置:

主机环境:win11

mysql版本:mysqld 8.0.37

安装路径::\Program Files\MySQL\MySQL Server 8.0

安装目录下没有*.cnf或my.ini配置文件

解决方案

注意:我安装mysql的时候默认路径未更改过,如果有安装在其它路径下的,请注意打开cmd命令窗口的路径;直接win+R打开的cmd窗口,执行mysqld命令不生效,所以找到mysql的安装路径下再执行

1.停止mysql服务

必须在mysql安装C:\Program Files\MySQL\MySQL Server 8.0\bin目录下,否则命令可能不生效;

目录打开cmd窗口小技巧

2.执行跳过权限验证的命令

注意:此处有坑,以下两条命令,需按自己系统安装mysql的情况而执行。如果mysql安装目录C:\Program Files\MySQL\MySQL Server 8.0存在data文件,执行2.1步骤;否则执行2.2步骤;

Q1.我当前执行2.1步骤出错了,排查原因就是mysql的数据没在Program Files文件夹下,而在ProgramData文件夹,所以更改命令带上配置执行2.2步骤;

Q2.网上有建议把ProgramData下的data文件复制到Program Files下面,但是此方法是能正常执行当前命令,后续更改的密码后,重启服务还是无法登录,原因是更改的Program Files下面复制过来的data文件里面的密码,服务启动后加载的是ProgramData下面的数据,所以相当于没操作;

Q3.ProgramData下面的data文件创建快捷方式复制到Program Files下面也不行,应该是mysql加载数据配置的时候无法识别此引用文件;

2.1执行 mysqld  --console --skip-grant-tables --shared-memory

2.2执行 mysqld --defaults-file="C:\ProgramData\MySQL\MySQL Server 8.0\my.ini"  --console --skip-grant-tables --shared-memory

3.更改密码
3.1同样的方式打卡一个新的命令窗口登录mysql并切换mysql数据库

mysql

use mysql

执行  select host, user, authentication_string, plugin from user;  命令后可查看当前用户信息;

3.2依次执行以下命令修改密码

update user set authentication_string='' where user='root';

flush privileges;

alter user 'root'@'%' identified by '你的新密码';

4.重启mysql服务
4.1在之前步骤2.1或者2.2的窗口中,ctr+c结束之前的命令;再执行启动mysql服务的命令 

ctr+c

net start MySQL8

5.总结

5.1mysql版本众多,windowns也在不断的更新,所以以前的一些配置和教程可能会无法解决当前问题。还需根据系统环境和软件的实际版本作相应的调整;

  • 19
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值