MySQL8.0 登录失败|ERROR 1045 (28000): Access denied for user ‘root‘@‘localhost‘ (using password)

一、大环境背景

开发App程序 让外部ip可以访问mysql数据库时 修改mysql的访问权限出问题。随后登录mysql发现连接不上mysql服务 爆ERROR 1045 (28000): Access denied for user ‘root‘@‘localhost‘ (using password) 

二、错误解释

1、首先报错:无权限错误
ERROR 1045 (28000): Access denied for user ‘root‘@‘localhost‘ (using password: YES)
【翻译:拒绝用户“root”@“localhost”的访问(使用密码:是)】

原因:root没有使用权限

参考了网上许多的方法 但发现许多方法 针对的版本不同 大多数问题的解决方法都是对于mysql5.0左右的命令行指令 不适用于mysql8.0以上

例如 网上让我修改my.ini文件的[mysqld]底下加了一句skip-grant-tables,然后再登录就报错:ERROR 2003 (HY000): Can’t connect to MySQL server on ‘localhost’ (10061)。然后后面怎么操作都是报这个error2003的错误!如果你目前的情况跟我一样,首先,你先在cmd里面输入命令net start mysql,这里显示启动成功,然后打开“服务”,发现mysql服务根本就没有启动!非常的离谱

mysql在启动的时候会到文件目录下 寻找my.ini的文件 它是配置文件 所以配置的skip-grant-tables是导致mysql不能成功启动的根本因素 其次对于skip-grant-tables这个命令也是mysql5.0左右的版本可以生效 对于8.0左右的版本已经没有效果了

三、废话不多讲 上解决方法

用管理员权限开两个cmd窗口

在第一个窗口输入

mysqld --console --skip-grant-tables --shared-memory

 回撤不关掉该窗口 在另一个窗口输入命令 mysql -u root -p 直接回车不用输入密码就可以 进去之后可以操作数据库进行密码的修改或者其他的操作

例如重置密码为空

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

通过quit命令结束mysql服务 关闭两个窗口 重新进入mysql

quit
mysql -uroot -p

进入mysql后通过ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';重新修改密码

ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';

到此问题结束!!!!!!!!

  • 8
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值