java.sql.SQLException: Access denied for user ‘Lenovo‘@‘localhost‘ (using password: YES)

参考:https://www.cnblogs.com/d191/p/12566008.html

目录

1. 报错演示

2. 代码思路分析 

3. 报错问题分析 

4. 问题解决


1. 报错演示

最近写spring配置文件

出现报错

严重: create connection SQLException, url: jdbc:mysql:///test, errorCode 1045, state 28000
java.sql.SQLException: Access denied for user 'Lenovo'@'localhost' (using password: YES)

2. 代码思路分析 

下面是我的代码

  1. spring xml 配置文件中配置了druid连接池对象
  2. spring xml 里的druid连接池对象 通过 ${} 去properties文件里读取 四项配置
  3. 程序从spring 容器中取出druid连接池对象
  4. 连接池 获取 数据库连接对象Connection
  5. 打印Connection

3. 报错问题分析 

我们看一下报错, 这很显然是MySQL登录出了问题 :   (using password: YES) 

再看一下用户名: Lenovo   好家伙 这不是我计算机用户名吗?

为了验证猜测, 我们打印一下数据源的四个信息

果然, 不出所料

打印的user是我的计算机用户名 

4. 问题解决

问题找到了 怎么解决呢?

经查询, 

spring默认会优先加载系统环境变量,此时获取到的username的值实际上指的是当前计算机的用户名。而不是properties配置文件中指定的username的值。

我们在标签后加上这一句

local-override="true"

再测试

问题解决 ! !

猜你喜欢

转载自blog.csdn.net/m0_52559040/article/details/123724112