JDBC :java.sql.SQLException: Access denied for user ‘root‘@‘localhost‘ (using password: YES) 数据库登录正常

项目场景:

JDBC连接mysql异常,数据库可正常登录!(这里是命令窗口执行结果,IDEA运行也是如此)


问题描述

 今天遇到一个令人发指的问题,早上JDBC连接很正常,晚上突然连接不上了!但是数据库可以正常登录,可是用JDBC连接数据库MySQL的时候却显示:

java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
        at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
        at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
        at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:828)
        at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:448)
        at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:241)
        at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:198)
        at java.sql.DriverManager.getConnection(DriverManager.java:664)
        at java.sql.DriverManager.getConnection(DriverManager.java:247)
        at JDBCText01.main(JDBCText01.java:31)
 ps:这个异常就是指连接不到数据库

原因分析:

1、检查用户名user、密码password、统一资源定位符url是否正确,是否有空格之类的错误,或是是否正确

2、是否在配置文件中有格式错误

3、检查是否端口被占用【本人就是这个问题】,一般默认端口号为3306

String url = "jdbc:mysql://localhost:3306/users";//最后是数据库名
			String user = "root";
			String password = "******";

解决方案:

这里只提供关于端口被占用的解决方案!

通过一系列网络其他方法一一尝试,包括不断重启,查看环境变量或者导入,都无法解决问题。终于我们在服务中发现了问题,我的MySQL服务正常启动,但与此同时,下面还有一个mysqlzt也正在运行。

        (1) windows +R     

        (2) 输入services.msc 或者 菜单栏直接搜索:服务

 

 

 查看属性可以知道,这是我之前下载的xmpp文件中自带的mysql,其端口号也为3306,这就是我们无法连接数据库的罪魁祸首!

 

 

 

因此我们将这个服务停止!

 (3)右键停止服务,重新尝试运行代码

 

最终数据库连接成功!就这一个小问题搞了我一晚上,真是快被气死了。

 

  • 15
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 9
    评论
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值