使用JDBC连接Mysql数据库时,出现Access denied for user报错解决办法

使用JDBC连接Mysql数据库时,出现Access denied for user报错解决办法

问题描述

在使用idea的过程中,用jdbc代码连接mysql数据库时,出现如下的报错,我的版本是5.6

error 1045 (28000): access denied for user 'learn'@'localhost' (using password: yes)

解决过程

这个问题还挺常见,网上有很多的解决办法,我总结一下:

  • 修改密码
  • 修改my.in/my.cnf配置文件
  • 删除user表中的空白用户

最终结果

最开始我也以为是密码的格式问题,直到我改了至少5次密码之后,发现没有起作用,我便放弃了这个办法,因为问题不是在这个地方。
第二种方法,没有试过,直觉告诉我不是这个问题。(~ ̄▽ ̄)~
于是第三个方法成为首选,而且网上只有很少的帖子在讨论这种方法,最开始是有个博主发现国外的某论坛有相同的问题,解决办法是删除user表中一个匿名账户,也可以说是空账户。造成无法连接的原因是mysql优先匹配了该匿名空账户,导致你不论输入的密码是否正确,都无法连接mysql。
参照该说法,我去查询了自己的user表,发现果然如此,有一个空账户,于是我将该账户用以下命令删除:

Delete FROM user Where User='' and Host='localhost';

如果是其他版本需要选择合适的语法删除用户,不然会报错

完成这一步后,关闭mysql后重新启动mysql,直接在cmd上登陆,没有问题可以进入了。
至此,问题完美解决,累了我一下午。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值