java使用jdbc连接数据库出现‘SQLException: Access denied for user ‘root‘@‘localhost‘ (using password: YES)’

出现这种问题一般有以下几种原因造成:

1.有可能是连接数据库的账号密码错误,可以用其他方式先连接数据库,进行排查

2.编码问题,IDEA使用的是GBK编码,而数据库使用的是utf-8,所以要将IDEA的格式设置成utf8。

操作如下,在url地址库名后面加上如下:

?allowMultiQueries=true&useUnicode=true&characterEncoding=UTF-8&useSSL=false

String url = "jdbc:mysql://localhost:3306/hsp_db02?allowMultiQueries=true&useUnicode=true&characterEncoding=UTF-8&useSSL=false";

3.在使用IDEA连接数据库,数据库中使用该账号必须在本机登录,而你用idea不是在本机,所以出现该问题

在数据中使用该命令进行查看

use mysql;

SELECT `host`, `user` FROM USER

host:表示的是登录ip地址。

localhost:表示只能是本机登录

%表示:不管任何ip地址都可以登录该账号

修改指令:UPDATE USER SET HOST='%' WHERE USER='账户号';

4.检查数据库端口号是否填写正确

数据库中查看:SHOW VARIABLES WHERE VARIABLE_NAME='port';

5.再看是不是有服务占用端口:发现是一个叫 mysqlzt的服务占用,停掉这个服务,在开启 MySQL 服务,再次连接成功。
根据服务 PID 查看端口:

netstat -ano

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值